vue
Which dist file to use?
From CDN or without a Bundler
With a Bundler
vue(.runtime).esm-bundler.js:
- For use with bundlers like
webpack, rollup and parcel.
- Leaves prod/dev branches with
process.env.NODE_ENV guards (must be replaced by bundler)
- Does not ship minified builds (to be done together with the rest of the code after bundling)
- Imports dependencies (e.g.
@vue/runtime-core, @vue/compiler-core)
- Imported dependencies are also
esm-bundler builds and will in turn import their dependencies (e.g. @vue/runtime-core imports @vue/reactivity)
- This means you can install/import these deps individually without ending up with different instances of these dependencies, but you must make sure they all resolve to the same version.
- In-browser template compilation:
vue.runtime.esm-bundler.js (default) is runtime only, and requires all templates to be pre-compiled. This is the default entry for bundlers (via module field in package.json) because when using a bundler templates are typically pre-compiled (e.g. in *.vue files).
vue.esm-bundler.js: includes the runtime compiler. Use this if you are using a bundler but still want runtime template compilation (e.g. in-DOM templates or templates via inline JavaScript strings). You will need to configure your bundler to alias vue to this file.
Bundler Build Feature Flags
Detailed Reference on vuejs.org
esm-bundler builds of Vue expose global feature flags that can be overwritten at compile time:
The build will work without configuring these flags, however it is strongly recommended to properly configure them in order to get proper tree-shaking in the final bundle.
For Server-Side Rendering
vue.cjs(.prod).js:
- For use in Node.js server-side rendering via
require().
- If you bundle your app with webpack with
target: 'node' and properly externalize vue, this is the build that will be loaded.
- The dev/prod files are pre-built, but the appropriate file is automatically required based on
process.env.NODE_ENV.