vue3-yuanma/packages/vue
2020-03-23 15:26:16 -04:00
..
__tests__ feat(runtime-core): implement RFC-0020 2020-03-12 16:13:12 -04:00
examples refactor(types): use stricter settings 2020-03-23 11:08:22 -04:00
src build: avoid runtime wildcard import in global build 2020-02-13 18:50:36 -05:00
api-extractor.json build: use api-extractor for type rollup 2019-09-03 12:16:22 -04:00
index.js build: add vue package 2018-10-23 11:58:37 -04:00
package.json build: add runtime-global build for vue 2020-03-23 15:09:29 -04:00
README.md chore: update dist file readme 2020-03-23 15:26:16 -04:00

vue

Which dist file to use?

From CDN or without a Bundler

  • vue(.runtime).global(.prod).js:

    • For direct use via <script src="..."> in the browser. Exposes the Vue global.
    • Note: global builds are not UMD builds. They are built as IIFEs and is only meant for direct use via <script src>.
    • vue.global.js: the "full" build that supports compiling templates on the fly.
    • vue.runtime.global.js: runtime only, does not include runtime template compilation support. Use this if you are not using a bundler, but somehow pre-compiling your template.
  • vue.esm(.prod).js:

    • For usage via native ES modules imports (in browser via <script type="module">, or via Node.js native ES modules support in the future)
    • Inlines all dependencies - i.e. it's a single ES module with no imports from other files
      • this means you must import everything from this file nad this file only to ensure you are getting the same instance of code.
    • Hard-coded prod/dev branches, and the prod build is pre-minified (you will need to use different files for dev/prod)

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/runtime-compiler)
      • imported depdencies 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.
    • vue.runtime.esm-bundler.js: runtime only, does not include runtime template compilation support. 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).

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.