From 0c3d5313e9cdc8e61f807e96c6e5e7bd2c846642 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 18 Oct 2021 13:30:40 +0100 Subject: [PATCH] build: use cjs/mjs extensions for cjs/esm builds --- packages/compiler-core/index.cjs | 7 ++++++ packages/compiler-core/index.js | 7 ------ packages/compiler-core/package.json | 6 ++--- packages/compiler-dom/index.cjs | 7 ++++++ packages/compiler-dom/index.js | 7 ------ packages/compiler-dom/package.json | 6 ++--- packages/compiler-sfc/package.json | 4 ++-- packages/compiler-ssr/package.json | 2 +- packages/reactivity/index.cjs | 7 ++++++ packages/reactivity/index.js | 7 ------ packages/reactivity/package.json | 6 ++--- packages/ref-transform/package.json | 2 +- packages/runtime-core/index.cjs | 7 ++++++ packages/runtime-core/index.js | 7 ------ packages/runtime-core/package.json | 6 ++--- packages/runtime-core/src/component.ts | 4 ++-- packages/runtime-dom/index.cjs | 7 ++++++ packages/runtime-dom/index.js | 7 ------ packages/runtime-dom/package.json | 6 ++--- packages/runtime-test/index.cjs | 7 ++++++ packages/runtime-test/index.js | 7 ------ packages/runtime-test/package.json | 6 ++--- packages/server-renderer/index.cjs | 7 ++++++ packages/server-renderer/index.js | 7 ------ packages/server-renderer/package.json | 6 ++--- packages/sfc-playground/src/App.vue | 2 +- packages/sfc-playground/vite.config.ts | 6 ++--- packages/shared/index.cjs | 7 ++++++ packages/shared/index.js | 7 ------ packages/shared/package.json | 6 ++--- packages/vue-compat/index.cjs | 7 ++++++ packages/vue-compat/index.js | 7 ------ packages/vue-compat/package.json | 6 ++--- packages/vue-compat/src/createCompatVue.ts | 2 +- packages/vue-compat/src/runtime.ts | 6 ++--- packages/vue/README.md | 6 ++--- .../vue/compiler-sfc/{index.js => index.cjs} | 0 packages/vue/compiler-sfc/package.json | 2 +- packages/vue/index.cjs | 7 ++++++ packages/vue/index.js | 7 ------ packages/vue/index.mjs | 2 +- packages/vue/package.json | 14 ++++++------ .../server-renderer/{index.js => index.cjs} | 0 packages/vue/server-renderer/package.json | 2 +- packages/vue/src/runtime.ts | 6 ++--- rollup.config.js | 22 ++++++++++++------- scripts/bootstrap.js | 6 ++--- 47 files changed, 144 insertions(+), 138 deletions(-) create mode 100644 packages/compiler-core/index.cjs delete mode 100644 packages/compiler-core/index.js create mode 100644 packages/compiler-dom/index.cjs delete mode 100644 packages/compiler-dom/index.js create mode 100644 packages/reactivity/index.cjs delete mode 100644 packages/reactivity/index.js create mode 100644 packages/runtime-core/index.cjs delete mode 100644 packages/runtime-core/index.js create mode 100644 packages/runtime-dom/index.cjs delete mode 100644 packages/runtime-dom/index.js create mode 100644 packages/runtime-test/index.cjs delete mode 100644 packages/runtime-test/index.js create mode 100644 packages/server-renderer/index.cjs delete mode 100644 packages/server-renderer/index.js create mode 100644 packages/shared/index.cjs delete mode 100644 packages/shared/index.js create mode 100644 packages/vue-compat/index.cjs delete mode 100644 packages/vue-compat/index.js rename packages/vue/compiler-sfc/{index.js => index.cjs} (100%) create mode 100644 packages/vue/index.cjs delete mode 100644 packages/vue/index.js rename packages/vue/server-renderer/{index.js => index.cjs} (100%) diff --git a/packages/compiler-core/index.cjs b/packages/compiler-core/index.cjs new file mode 100644 index 00000000000..b0ab996916f --- /dev/null +++ b/packages/compiler-core/index.cjs @@ -0,0 +1,7 @@ +'use strict' + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./dist/compiler-core.prod.cjs') +} else { + module.exports = require('./dist/compiler-core.cjs') +} diff --git a/packages/compiler-core/index.js b/packages/compiler-core/index.js deleted file mode 100644 index d3fc54f4510..00000000000 --- a/packages/compiler-core/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./dist/compiler-core.cjs.prod.js') -} else { - module.exports = require('./dist/compiler-core.cjs.js') -} diff --git a/packages/compiler-core/package.json b/packages/compiler-core/package.json index 7623227a9e0..12faf8c30a9 100644 --- a/packages/compiler-core/package.json +++ b/packages/compiler-core/package.json @@ -2,11 +2,11 @@ "name": "@vue/compiler-core", "version": "3.2.20", "description": "@vue/compiler-core", - "main": "index.js", - "module": "dist/compiler-core.esm-bundler.js", + "main": "index.cjs", + "module": "dist/compiler-core.esm-bundler.mjs", "types": "dist/compiler-core.d.ts", "files": [ - "index.js", + "index.cjs", "dist" ], "buildOptions": { diff --git a/packages/compiler-dom/index.cjs b/packages/compiler-dom/index.cjs new file mode 100644 index 00000000000..f535e9cd1f1 --- /dev/null +++ b/packages/compiler-dom/index.cjs @@ -0,0 +1,7 @@ +'use strict' + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./dist/compiler-dom.prod.cjs') +} else { + module.exports = require('./dist/compiler-dom.cjs') +} diff --git a/packages/compiler-dom/index.js b/packages/compiler-dom/index.js deleted file mode 100644 index b5f7a05ea10..00000000000 --- a/packages/compiler-dom/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./dist/compiler-dom.cjs.prod.js') -} else { - module.exports = require('./dist/compiler-dom.cjs.js') -} diff --git a/packages/compiler-dom/package.json b/packages/compiler-dom/package.json index ca22eae919f..3bc976ca3ea 100644 --- a/packages/compiler-dom/package.json +++ b/packages/compiler-dom/package.json @@ -2,13 +2,13 @@ "name": "@vue/compiler-dom", "version": "3.2.20", "description": "@vue/compiler-dom", - "main": "index.js", - "module": "dist/compiler-dom.esm-bundler.js", + "main": "index.cjs", + "module": "dist/compiler-dom.esm-bundler.mjs", "types": "dist/compiler-dom.d.ts", "unpkg": "dist/compiler-dom.global.js", "jsdelivr": "dist/compiler-dom.global.js", "files": [ - "index.js", + "index.cjs", "dist" ], "sideEffects": false, diff --git a/packages/compiler-sfc/package.json b/packages/compiler-sfc/package.json index d3fb96abba0..ed2edf978c0 100644 --- a/packages/compiler-sfc/package.json +++ b/packages/compiler-sfc/package.json @@ -2,8 +2,8 @@ "name": "@vue/compiler-sfc", "version": "3.2.20", "description": "@vue/compiler-sfc", - "main": "dist/compiler-sfc.cjs.js", - "module": "dist/compiler-sfc.esm-browser.js", + "main": "dist/compiler-sfc.cjs", + "module": "dist/compiler-sfc.esm-browser.mjs", "types": "dist/compiler-sfc.d.ts", "files": [ "dist" diff --git a/packages/compiler-ssr/package.json b/packages/compiler-ssr/package.json index 899d93f61cd..d64a550966e 100644 --- a/packages/compiler-ssr/package.json +++ b/packages/compiler-ssr/package.json @@ -2,7 +2,7 @@ "name": "@vue/compiler-ssr", "version": "3.2.20", "description": "@vue/compiler-ssr", - "main": "dist/compiler-ssr.cjs.js", + "main": "dist/compiler-ssr.cjs", "types": "dist/compiler-ssr.d.ts", "files": [ "dist" diff --git a/packages/reactivity/index.cjs b/packages/reactivity/index.cjs new file mode 100644 index 00000000000..cf3dd2c0cc8 --- /dev/null +++ b/packages/reactivity/index.cjs @@ -0,0 +1,7 @@ +'use strict' + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./dist/reactivity.prod.cjs') +} else { + module.exports = require('./dist/reactivity.cjs') +} diff --git a/packages/reactivity/index.js b/packages/reactivity/index.js deleted file mode 100644 index 04a8ba553f3..00000000000 --- a/packages/reactivity/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./dist/reactivity.cjs.prod.js') -} else { - module.exports = require('./dist/reactivity.cjs.js') -} diff --git a/packages/reactivity/package.json b/packages/reactivity/package.json index 15d1332fd5a..a4b0a08bdaf 100644 --- a/packages/reactivity/package.json +++ b/packages/reactivity/package.json @@ -2,13 +2,13 @@ "name": "@vue/reactivity", "version": "3.2.20", "description": "@vue/reactivity", - "main": "index.js", - "module": "dist/reactivity.esm-bundler.js", + "main": "index.cjs", + "module": "dist/reactivity.esm-bundler.mjs", "types": "dist/reactivity.d.ts", "unpkg": "dist/reactivity.global.js", "jsdelivr": "dist/reactivity.global.js", "files": [ - "index.js", + "index.cjs", "dist" ], "sideEffects": false, diff --git a/packages/ref-transform/package.json b/packages/ref-transform/package.json index 6eb22d94e4e..ec7aa4ffafc 100644 --- a/packages/ref-transform/package.json +++ b/packages/ref-transform/package.json @@ -2,7 +2,7 @@ "name": "@vue/ref-transform", "version": "3.2.20", "description": "@vue/ref-transform", - "main": "dist/ref-transform.cjs.js", + "main": "dist/ref-transform.cjs", "files": [ "dist" ], diff --git a/packages/runtime-core/index.cjs b/packages/runtime-core/index.cjs new file mode 100644 index 00000000000..b44e383c55a --- /dev/null +++ b/packages/runtime-core/index.cjs @@ -0,0 +1,7 @@ +'use strict' + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./dist/runtime-core.prod.cjs') +} else { + module.exports = require('./dist/runtime-core.cjs') +} diff --git a/packages/runtime-core/index.js b/packages/runtime-core/index.js deleted file mode 100644 index 50c48827e14..00000000000 --- a/packages/runtime-core/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./dist/runtime-core.cjs.prod.js') -} else { - module.exports = require('./dist/runtime-core.cjs.js') -} diff --git a/packages/runtime-core/package.json b/packages/runtime-core/package.json index 187d53cbf36..85c51d5dff9 100644 --- a/packages/runtime-core/package.json +++ b/packages/runtime-core/package.json @@ -2,11 +2,11 @@ "name": "@vue/runtime-core", "version": "3.2.20", "description": "@vue/runtime-core", - "main": "index.js", - "module": "dist/runtime-core.esm-bundler.js", + "main": "index.cjs", + "module": "dist/runtime-core.esm-bundler.mjs", "types": "dist/runtime-core.d.ts", "files": [ - "index.js", + "index.cjs", "dist" ], "buildOptions": { diff --git a/packages/runtime-core/src/component.ts b/packages/runtime-core/src/component.ts index 515bd16d2f3..c2950b9d8b0 100644 --- a/packages/runtime-core/src/component.ts +++ b/packages/runtime-core/src/component.ts @@ -820,9 +820,9 @@ export function finishComponentSetup( `Component provided template option but ` + `runtime compilation is not supported in this build of Vue.` + (__ESM_BUNDLER__ - ? ` Configure your bundler to alias "vue" to "vue/dist/vue.esm-bundler.js".` + ? ` Configure your bundler to alias "vue" to "vue/dist/vue.esm-bundler.mjs".` : __ESM_BROWSER__ - ? ` Use "vue.esm-browser.js" instead.` + ? ` Use "vue.esm-browser.mjs" instead.` : __GLOBAL__ ? ` Use "vue.global.js" instead.` : ``) /* should not happen */ diff --git a/packages/runtime-dom/index.cjs b/packages/runtime-dom/index.cjs new file mode 100644 index 00000000000..e03f75a7b28 --- /dev/null +++ b/packages/runtime-dom/index.cjs @@ -0,0 +1,7 @@ +'use strict' + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./dist/runtime-dom.prod.cjs') +} else { + module.exports = require('./dist/runtime-dom.cjs') +} diff --git a/packages/runtime-dom/index.js b/packages/runtime-dom/index.js deleted file mode 100644 index cdc29b2a879..00000000000 --- a/packages/runtime-dom/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./dist/runtime-dom.cjs.prod.js') -} else { - module.exports = require('./dist/runtime-dom.cjs.js') -} diff --git a/packages/runtime-dom/package.json b/packages/runtime-dom/package.json index 2b0def72d48..15f721c81c0 100644 --- a/packages/runtime-dom/package.json +++ b/packages/runtime-dom/package.json @@ -2,12 +2,12 @@ "name": "@vue/runtime-dom", "version": "3.2.20", "description": "@vue/runtime-dom", - "main": "index.js", - "module": "dist/runtime-dom.esm-bundler.js", + "main": "index.cjs", + "module": "dist/runtime-dom.esm-bundler.mjs", "types": "dist/runtime-dom.d.ts", "unpkg": "dist/runtime-dom.global.js", "files": [ - "index.js", + "index.cjs", "dist" ], "sideEffects": false, diff --git a/packages/runtime-test/index.cjs b/packages/runtime-test/index.cjs new file mode 100644 index 00000000000..b62f990398c --- /dev/null +++ b/packages/runtime-test/index.cjs @@ -0,0 +1,7 @@ +'use strict' + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./dist/runtime-test.prod.cjs') +} else { + module.exports = require('./dist/runtime-test.cjs') +} diff --git a/packages/runtime-test/index.js b/packages/runtime-test/index.js deleted file mode 100644 index f8c6cfdc712..00000000000 --- a/packages/runtime-test/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./dist/runtime-test.cjs.prod.js') -} else { - module.exports = require('./dist/runtime-test.cjs.js') -} diff --git a/packages/runtime-test/package.json b/packages/runtime-test/package.json index df3cb9da069..745fdc11a58 100644 --- a/packages/runtime-test/package.json +++ b/packages/runtime-test/package.json @@ -3,11 +3,11 @@ "version": "3.2.20", "description": "@vue/runtime-test", "private": true, - "main": "index.js", - "module": "dist/runtime-test.esm-bundler.js", + "main": "index.cjs", + "module": "dist/runtime-test.esm-bundler.mjs", "types": "dist/runtime-test.d.ts", "files": [ - "index.js", + "index.cjs", "dist" ], "repository": { diff --git a/packages/server-renderer/index.cjs b/packages/server-renderer/index.cjs new file mode 100644 index 00000000000..c754254107e --- /dev/null +++ b/packages/server-renderer/index.cjs @@ -0,0 +1,7 @@ +'use strict' + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./dist/server-renderer.prod.cjs') +} else { + module.exports = require('./dist/server-renderer.cjs') +} diff --git a/packages/server-renderer/index.js b/packages/server-renderer/index.js deleted file mode 100644 index f5a3d90d603..00000000000 --- a/packages/server-renderer/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./dist/server-renderer.cjs.prod.js') -} else { - module.exports = require('./dist/server-renderer.cjs.js') -} diff --git a/packages/server-renderer/package.json b/packages/server-renderer/package.json index fd1673afe2a..446c30b8085 100644 --- a/packages/server-renderer/package.json +++ b/packages/server-renderer/package.json @@ -2,11 +2,11 @@ "name": "@vue/server-renderer", "version": "3.2.20", "description": "@vue/server-renderer", - "main": "index.js", - "module": "dist/server-renderer.esm-bundler.js", + "main": "index.cjs", + "module": "dist/server-renderer.esm-bundler.mjs", "types": "dist/server-renderer.d.ts", "files": [ - "index.js", + "index.cjs", "dist" ], "buildOptions": { diff --git a/packages/sfc-playground/src/App.vue b/packages/sfc-playground/src/App.vue index 06913b3912d..61131a3cacf 100644 --- a/packages/sfc-playground/src/App.vue +++ b/packages/sfc-playground/src/App.vue @@ -12,7 +12,7 @@ setVH() const store = new ReplStore({ serializedState: location.hash.slice(1), defaultVueRuntimeURL: import.meta.env.PROD - ? `${location.origin}/vue.runtime.esm-browser.js` + ? `${location.origin}/vue.runtime.esm-browser.mjs` : `${location.origin}/src/vue-dev-proxy` }) diff --git a/packages/sfc-playground/vite.config.ts b/packages/sfc-playground/vite.config.ts index 4184c791817..3d28aca8635 100644 --- a/packages/sfc-playground/vite.config.ts +++ b/packages/sfc-playground/vite.config.ts @@ -23,17 +23,17 @@ function copyVuePlugin(): Plugin { generateBundle() { const filePath = path.resolve( __dirname, - '../vue/dist/vue.runtime.esm-browser.js' + '../vue/dist/vue.runtime.esm-browser.mjs' ) if (!fs.existsSync(filePath)) { throw new Error( - `vue.runtime.esm-browser.js not built. ` + + `vue.runtime.esm-browser.mjs not built. ` + `Run "nr build vue -f esm-browser" first.` ) } this.emitFile({ type: 'asset', - fileName: 'vue.runtime.esm-browser.js', + fileName: 'vue.runtime.esm-browser.mjs', source: fs.readFileSync(filePath, 'utf-8') }) } diff --git a/packages/shared/index.cjs b/packages/shared/index.cjs new file mode 100644 index 00000000000..6aa3731fd94 --- /dev/null +++ b/packages/shared/index.cjs @@ -0,0 +1,7 @@ +'use strict' + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./dist/shared.prod.cjs') +} else { + module.exports = require('./dist/shared.cjs') +} diff --git a/packages/shared/index.js b/packages/shared/index.js deleted file mode 100644 index a2ee43e36fd..00000000000 --- a/packages/shared/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./dist/shared.cjs.prod.js') -} else { - module.exports = require('./dist/shared.cjs.js') -} diff --git a/packages/shared/package.json b/packages/shared/package.json index 8848c394b10..b5450f40cbd 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -2,11 +2,11 @@ "name": "@vue/shared", "version": "3.2.20", "description": "internal utils shared across @vue packages", - "main": "index.js", - "module": "dist/shared.esm-bundler.js", + "main": "index.cjs", + "module": "dist/shared.esm-bundler.mjs", "types": "dist/shared.d.ts", "files": [ - "index.js", + "index.cjs", "dist" ], "buildOptions": { diff --git a/packages/vue-compat/index.cjs b/packages/vue-compat/index.cjs new file mode 100644 index 00000000000..16ee35e4ee2 --- /dev/null +++ b/packages/vue-compat/index.cjs @@ -0,0 +1,7 @@ +'use strict' + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./dist/vue.prod.cjs') +} else { + module.exports = require('./dist/vue.cjs') +} diff --git a/packages/vue-compat/index.js b/packages/vue-compat/index.js deleted file mode 100644 index 7a3dc2d825c..00000000000 --- a/packages/vue-compat/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./dist/vue.cjs.prod.js') -} else { - module.exports = require('./dist/vue.cjs.js') -} diff --git a/packages/vue-compat/package.json b/packages/vue-compat/package.json index b86c0cf1519..37bf41c4796 100644 --- a/packages/vue-compat/package.json +++ b/packages/vue-compat/package.json @@ -2,12 +2,12 @@ "name": "@vue/compat", "version": "3.2.20", "description": "Vue 3 compatibility build for Vue 2", - "main": "index.js", - "module": "dist/vue.runtime.esm-bundler.js", + "main": "index.cjs", + "module": "dist/vue.runtime.esm-bundler.mjs", "unpkg": "dist/vue.global.js", "jsdelivr": "dist/vue.global.js", "files": [ - "index.js", + "index.cjs", "dist" ], "buildOptions": { diff --git a/packages/vue-compat/src/createCompatVue.ts b/packages/vue-compat/src/createCompatVue.ts index 5815fc21dc6..6f8686ddcef 100644 --- a/packages/vue-compat/src/createCompatVue.ts +++ b/packages/vue-compat/src/createCompatVue.ts @@ -1,5 +1,5 @@ // This entry exports the runtime only, and is built as -// `dist/vue.esm-bundler.js` which is used by default for bundlers. +// `dist/vue.esm-bundler.mjs` which is used by default for bundlers. import { initDev } from './dev' import { compatUtils, diff --git a/packages/vue-compat/src/runtime.ts b/packages/vue-compat/src/runtime.ts index 5cb5845b24c..a55e4c7c5c6 100644 --- a/packages/vue-compat/src/runtime.ts +++ b/packages/vue-compat/src/runtime.ts @@ -1,5 +1,5 @@ // This entry exports the runtime only, and is built as -// `dist/vue.esm-bundler.js` which is used by default for bundlers. +// `dist/vue.esm-bundler.mjs` which is used by default for bundlers. import { createCompatVue } from './createCompatVue' import { warn } from '@vue/runtime-core' @@ -10,9 +10,9 @@ Vue.compile = (() => { warn( `Runtime compilation is not supported in this build of Vue.` + (__ESM_BUNDLER__ - ? ` Configure your bundler to alias "vue" to "@vue/compat/dist/vue.esm-bundler.js".` + ? ` Configure your bundler to alias "vue" to "@vue/compat/dist/vue.esm-bundler.mjs".` : __ESM_BROWSER__ - ? ` Use "vue.esm-browser.js" instead.` + ? ` Use "vue.esm-browser.mjs" instead.` : __GLOBAL__ ? ` Use "vue.global.js" instead.` : ``) /* should not happen */ diff --git a/packages/vue/README.md b/packages/vue/README.md index a98bd997487..1c869cebec1 100644 --- a/packages/vue/README.md +++ b/packages/vue/README.md @@ -19,7 +19,7 @@ ### With a Bundler -- **`vue(.runtime).esm-bundler.js`**: +- **`vue(.runtime).esm-bundler.mjs`**: - For use with bundlers like `webpack`, `rollup` and `parcel`. - Leaves prod/dev branches with `process.env.NODE_ENV` guards (must be replaced by bundler) @@ -28,8 +28,8 @@ - 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. + - **`vue.runtime.esm-bundler.mjs` (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.mjs`**: 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 diff --git a/packages/vue/compiler-sfc/index.js b/packages/vue/compiler-sfc/index.cjs similarity index 100% rename from packages/vue/compiler-sfc/index.js rename to packages/vue/compiler-sfc/index.cjs diff --git a/packages/vue/compiler-sfc/package.json b/packages/vue/compiler-sfc/package.json index 1b15fb844ac..99e43aba874 100644 --- a/packages/vue/compiler-sfc/package.json +++ b/packages/vue/compiler-sfc/package.json @@ -1,5 +1,5 @@ { - "main": "index.js", + "main": "index.cjs", "module": "index.mjs", "types": "index.d.ts" } \ No newline at end of file diff --git a/packages/vue/index.cjs b/packages/vue/index.cjs new file mode 100644 index 00000000000..16ee35e4ee2 --- /dev/null +++ b/packages/vue/index.cjs @@ -0,0 +1,7 @@ +'use strict' + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./dist/vue.prod.cjs') +} else { + module.exports = require('./dist/vue.cjs') +} diff --git a/packages/vue/index.js b/packages/vue/index.js deleted file mode 100644 index 7a3dc2d825c..00000000000 --- a/packages/vue/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./dist/vue.cjs.prod.js') -} else { - module.exports = require('./dist/vue.cjs.js') -} diff --git a/packages/vue/index.mjs b/packages/vue/index.mjs index 8b43612483a..7a807711a84 100644 --- a/packages/vue/index.mjs +++ b/packages/vue/index.mjs @@ -1 +1 @@ -export * from './index.js' \ No newline at end of file +export * from './index.cjs' \ No newline at end of file diff --git a/packages/vue/package.json b/packages/vue/package.json index 060c75ac938..54d06be7edf 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -2,13 +2,13 @@ "name": "vue", "version": "3.2.20", "description": "The progressive JavaScript framework for buiding modern web UI.", - "main": "index.js", - "module": "dist/vue.runtime.esm-bundler.js", + "main": "index.cjs", + "module": "dist/vue.runtime.esm-bundler.mjs", "types": "dist/vue.d.ts", "unpkg": "dist/vue.global.js", "jsdelivr": "dist/vue.global.js", "files": [ - "index.js", + "index.cjs", "index.mjs", "dist", "compiler-sfc", @@ -19,17 +19,17 @@ ".": { "import": { "node": "./index.mjs", - "default": "./dist/vue.runtime.esm-bundler.js" + "default": "./dist/vue.runtime.esm-bundler.mjs" }, - "require": "./index.js" + "require": "./index.cjs" }, "./server-renderer": { "import": "./server-renderer/index.mjs", - "require": "./server-renderer/index.js" + "require": "./server-renderer/index.cjs" }, "./compiler-sfc": { "import": "./compiler-sfc/index.mjs", - "require": "./compiler-sfc/index.js" + "require": "./compiler-sfc/index.cjs" }, "./dist/*": "./dist/*", "./package.json": "./package.json" diff --git a/packages/vue/server-renderer/index.js b/packages/vue/server-renderer/index.cjs similarity index 100% rename from packages/vue/server-renderer/index.js rename to packages/vue/server-renderer/index.cjs diff --git a/packages/vue/server-renderer/package.json b/packages/vue/server-renderer/package.json index 1b15fb844ac..99e43aba874 100644 --- a/packages/vue/server-renderer/package.json +++ b/packages/vue/server-renderer/package.json @@ -1,5 +1,5 @@ { - "main": "index.js", + "main": "index.cjs", "module": "index.mjs", "types": "index.d.ts" } \ No newline at end of file diff --git a/packages/vue/src/runtime.ts b/packages/vue/src/runtime.ts index 7fe70670a5e..21fb212797f 100644 --- a/packages/vue/src/runtime.ts +++ b/packages/vue/src/runtime.ts @@ -1,5 +1,5 @@ // This entry exports the runtime only, and is built as -// `dist/vue.esm-bundler.js` which is used by default for bundlers. +// `dist/vue.esm-bundler.mjs` which is used by default for bundlers. import { initDev } from './dev' import { warn } from '@vue/runtime-dom' @@ -14,9 +14,9 @@ export const compile = () => { warn( `Runtime compilation is not supported in this build of Vue.` + (__ESM_BUNDLER__ - ? ` Configure your bundler to alias "vue" to "vue/dist/vue.esm-bundler.js".` + ? ` Configure your bundler to alias "vue" to "vue/dist/vue.esm-bundler.mjs".` : __ESM_BROWSER__ - ? ` Use "vue.esm-browser.js" instead.` + ? ` Use "vue.esm-browser.mjs" instead.` : __GLOBAL__ ? ` Use "vue.global.js" instead.` : ``) /* should not happen */ diff --git a/rollup.config.js b/rollup.config.js index 5f7b1d51251..c8137c3188f 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -21,15 +21,15 @@ let hasTSChecked = false const outputConfigs = { 'esm-bundler': { - file: resolve(`dist/${name}.esm-bundler.js`), + file: resolve(`dist/${name}.esm-bundler.mjs`), format: `es` }, 'esm-browser': { - file: resolve(`dist/${name}.esm-browser.js`), + file: resolve(`dist/${name}.esm-browser.mjs`), format: `es` }, cjs: { - file: resolve(`dist/${name}.cjs.js`), + file: resolve(`dist/${name}.cjs`), format: `cjs` }, global: { @@ -38,11 +38,11 @@ const outputConfigs = { }, // runtime-only builds, for main "vue" package only 'esm-bundler-runtime': { - file: resolve(`dist/${name}.runtime.esm-bundler.js`), + file: resolve(`dist/${name}.runtime.esm-bundler.mjs`), format: `es` }, 'esm-browser-runtime': { - file: resolve(`dist/${name}.runtime.esm-browser.js`), + file: resolve(`dist/${name}.runtime.esm-browser.mjs`), format: 'es' }, 'global-runtime': { @@ -81,7 +81,7 @@ function createConfig(format, output, plugins = []) { } const isProductionBuild = - process.env.__DEV__ === 'false' || /\.prod\.js$/.test(output.file) + process.env.__DEV__ === 'false' || /\.prod\.[cm]?js$/.test(output.file) const isBundlerESMBuild = /esm-bundler/.test(format) const isBrowserESMBuild = /esm-browser/.test(format) const isNodeBuild = format === 'cjs' @@ -287,8 +287,14 @@ function createReplacePlugin( } function createProductionConfig(format) { + const extensions = { + cjs: 'cjs', + es: 'mjs' + } + const ext = extensions[format] || 'js' + const description = format === 'cjs' ? '' : `.${format}` return createConfig(format, { - file: resolve(`dist/${name}.${format}.prod.js`), + file: resolve(`dist/${name}${description}.prod.${ext}`), format: outputConfigs[format].format }) } @@ -298,7 +304,7 @@ function createMinifiedConfig(format) { return createConfig( format, { - file: outputConfigs[format].file.replace(/\.js$/, '.prod.js'), + file: outputConfigs[format].file.replace(/\.[cm]?js$/, r => `.prod${r}`), format: outputConfigs[format].format }, [ diff --git a/scripts/bootstrap.js b/scripts/bootstrap.js index f944723beba..42569be6f4e 100644 --- a/scripts/bootstrap.js +++ b/scripts/bootstrap.js @@ -29,7 +29,7 @@ files.forEach(shortName => { version, description: name, main: 'index.js', - module: `dist/${shortName}.esm-bundler.js`, + module: `dist/${shortName}.esm-bundler.mjs`, files: [`index.js`, `dist`], types: `dist/${shortName}.d.ts`, repository: { @@ -89,9 +89,9 @@ files.forEach(shortName => { 'use strict' if (process.env.NODE_ENV === 'production') { - module.exports = require('./dist/${shortName}.cjs.prod.js') + module.exports = require('./dist/${shortName}.prod.cjs') } else { - module.exports = require('./dist/${shortName}.cjs.js') + module.exports = require('./dist/${shortName}.cjs') } `.trim() + '\n' )