diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index a1a0aafa5..c6feedd06 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -103,11 +103,6 @@ By default, each package will be built in multiple distribution formats as speci - This means you **must** import everything from this file and 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 have to use different paths/aliases for dev/prod) -- **`cjs`** - - - For use in Node.js server-side rendering via `require()`. - - The dev/prod files are pre-built, but are dynamically required based on `process.env.NODE_ENV` in `index.js`, which is the default entry when you do `require('vue-i18n')`. - For example, to build `compiler` with the global build only: ```bash @@ -117,7 +112,7 @@ pnpm build -- message-compiler -f global Multiple formats can be specified as a comma-separated list: ```bash -pnpm build -- message-compiler -f esm-browser,cjs +pnpm build -- message-compiler -f esm-browser,global ``` #### Build with Source Maps diff --git a/docs/guide/extra/dist.md b/docs/guide/extra/dist.md index 1b8376078..be30b95ee 100644 --- a/docs/guide/extra/dist.md +++ b/docs/guide/extra/dist.md @@ -40,24 +40,10 @@ If you use `vue-i18n.runtime.esm-bundler.js`, you will need to precompile all lo ## For Node.js (Server-Side) -- **`vue-i18n.cjs(.prod).js`**: - - For CommonJS usage in Node.js - - For use in Node.js via `require()` - - If you bundle your app with webpack with `target: 'node'` and properly externalize `vue-i18n`, 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` - -:::tip Support Version -:new: 9.3+ -::: - -- **`vue-i18n(.runtime).node.mjs`**: +- **`vue-i18n(.runtime).node.js`**: - For ES Modules usage in Node.js - For use in Node.js via `import` - The dev/prod files are pre-built, but the appropriate file is automatically required based on `process.env``.NODE_ENV` - - This module is proxy module of `vue-i18n(.runtime).mjs` - - **`vue-i18n.runtime.node.mjs`**: is runtime only. - - **`vue-i18n.node.mjs`**: includes the runtime compiler. - -:::tip NOTE -ES Modules will be the future of the Node.js module system. The `vue-i18n.cjs(.prod).js` will be deprecated in the future. We recommend you would use `vue-i18n(.runtime).node.mjs`. -::: + - This module is proxy module of `vue-i18n(.runtime).js` + - **`vue-i18n.runtime.node.js`**: is runtime only. + - **`vue-i18n.node.js`**: includes the runtime compiler. diff --git a/eslint.config.mjs b/eslint.config.mjs index add504a49..66f6631d4 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -51,7 +51,7 @@ export default [ } }, { - files: ['**/*.js', '**/*.cjs', '**/*.mjs'], + files: ['**/*.js', '**/*.mjs'], ...ts.configs.disableTypeChecked }, @@ -95,7 +95,6 @@ export default [ 'shim.d.ts', 'temp/**', '.eslintcache', - '.eslintrc.cjs', 'packages/*/vite.config.ts', 'packages/*/index.js', 'packages/vue-i18n-core/petite.js', diff --git a/packages/core-base/index.js b/packages/core-base/index.js deleted file mode 100644 index 9a6a8be0a..000000000 --- a/packages/core-base/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./dist/core-base.prod.cjs') -} else { - module.exports = require('./dist/core-base.cjs') -} diff --git a/packages/core-base/package.json b/packages/core-base/package.json index 1bfc37639..a38568f6b 100644 --- a/packages/core-base/package.json +++ b/packages/core-base/package.json @@ -24,11 +24,9 @@ "url": "https://github.com/intlify/vue-i18n/issues" }, "files": [ - "index.js", "dist" ], - "main": "index.js", - "module": "dist/core-base.mjs", + "module": "dist/core-base.js", "unpkg": "dist/core-base.global.js", "jsdelivr": "dist/core-base.global.js", "types": "dist/core-base.d.ts", @@ -47,25 +45,19 @@ "formats": [ "mjs", "browser", - "cjs", "global" ] }, "exports": { ".": { "types": "./dist/core-base.d.ts", - "import": "./dist/core-base.mjs", + "import": "./dist/core-base.js", "browser": "./dist/core-base.esm-browser.js", "node": { "import": { - "production": "./dist/core-base.prod.cjs", - "development": "./dist/core-base.mjs", - "default": "./dist/core-base.mjs" - }, - "require": { - "production": "./dist/core-base.prod.cjs", - "development": "./dist/core-base.cjs", - "default": "./index.js" + "production": "./dist/core-base.prod.js", + "development": "./dist/core-base.js", + "default": "./dist/core-base.js" } } }, diff --git a/packages/core/README.md b/packages/core/README.md index cbaff2059..70975b72b 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -36,22 +36,13 @@ The intlify core module for i18n ### For Node.js (Server-Side) -- **`core.cjs(.prod).js`**: - - For CommonJS usage in Node.js - - For use in Node.js via `require()` - - If you bundle your app with webpack with `target: 'node'` and properly externalize `@intlify/core`, 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` - -- **`core(.runtime).node.mjs`**: - - For ES Moudles usage in Node.js +- **`core(.runtime).node.js`**: + - For ES Modules usage in Node.js - For use in Node.js via `import` - The dev/prod files are pre-built, but the appropriate file is automatically required based on `process.env.NODE_ENV` - - This module is proxy module of `core(.runtime).mjs` - - **`core.runtime.node.mjs`**: is runtime only. proxy `core.runtime.mjs` - - **`core.node.mjs`**: includes the runtime compiler. proxy `core.mjs` - -> NOTE: ES Modules will be the future of the Node.js module system. The `core.cjs(.prod).js` will be deprecated in the future. We recommend you would use `core(.runtime).node.mjs`. 9.3+ - + - This module is proxy module of `core(.runtime).js` + - **`core.runtime.node.js`**: is runtime only. proxy `core.runtime.js` + - **`core.node.js`**: includes the runtime compiler. proxy `core.js` ## :copyright: License diff --git a/packages/core/index.js b/packages/core/index.js deleted file mode 100644 index e4e67ff60..000000000 --- a/packages/core/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./dist/core.prod.cjs') -} else { - module.exports = require('./dist/core.cjs') -} diff --git a/packages/core/package.json b/packages/core/package.json index e95d19732..cf03d284a 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -24,11 +24,9 @@ "url": "https://github.com/intlify/vue-i18n/issues" }, "files": [ - "index.js", "dist" ], - "main": "index.js", - "module": "dist/core.mjs", + "module": "dist/core.js", "unpkg": "dist/core.global.js", "jsdelivr": "dist/core.global.js", "types": "dist/core.d.ts", @@ -48,7 +46,6 @@ "mjs-node-runtime", "browser", "browser-runtime", - "cjs", "global", "global-runtime" ] @@ -56,18 +53,13 @@ "exports": { ".": { "types": "./dist/core.d.ts", - "import": "./dist/core.mjs", + "import": "./dist/core.js", "browser": "./dist/core.esm-browser.js", "node": { "import": { - "production": "./dist/core.prod.node.mjs", - "development": "./dist/core.node.mjs", - "default": "./dist/core.node.mjs" - }, - "require": { - "production": "./dist/core.prod.cjs", - "development": "./dist/core.cjs", - "default": "./index.js" + "production": "./dist/core.prod.node.js", + "development": "./dist/core.node.js", + "default": "./dist/core.node.js" } } }, diff --git a/packages/devtools-types/index.js b/packages/devtools-types/index.js deleted file mode 100644 index d64c0e375..000000000 --- a/packages/devtools-types/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./dist/devtools-types.prod.cjs') -} else { - module.exports = require('./dist/devtools-types.cjs') -} diff --git a/packages/devtools-types/package.json b/packages/devtools-types/package.json index fd9821ae9..dc4f6dcc3 100644 --- a/packages/devtools-types/package.json +++ b/packages/devtools-types/package.json @@ -23,11 +23,9 @@ "url": "https://github.com/intlify/vue-i18n/issues" }, "files": [ - "index.js", "dist" ], - "main": "index.js", - "module": "dist/devtools-types.mjs", + "module": "dist/devtools-types.js", "types": "dist/devtools-types.d.ts", "dependencies": { "@intlify/core-base": "workspace:*", @@ -39,24 +37,18 @@ "buildOptions": { "name": "IntlifyDevToolsTypes", "formats": [ - "mjs", - "cjs" + "mjs" ] }, "exports": { ".": { "types": "./dist/devtools-types.d.ts", - "import": "./dist/devtools-types.mjs", + "import": "./dist/devtools-types.js", "node": { "import": { - "production": "./dist/devtools-types.prod.cjs", - "development": "./dist/devtools-types.mjs", - "default": "./dist/devtools-types.mjs" - }, - "require": { - "production": "./dist/devtools-types.prod.cjs", - "development": "./dist/devtools-types.cjs", - "default": "./index.js" + "production": "./dist/devtools-types.prod.js", + "development": "./dist/devtools-types.js", + "default": "./dist/devtools-types.js" } } }, diff --git a/packages/message-compiler/index.js b/packages/message-compiler/index.js deleted file mode 100644 index 5109c761e..000000000 --- a/packages/message-compiler/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./dist/message-compiler.prod.cjs') -} else { - module.exports = require('./dist/message-compiler.cjs') -} diff --git a/packages/message-compiler/package.json b/packages/message-compiler/package.json index d94c560a0..60b444345 100644 --- a/packages/message-compiler/package.json +++ b/packages/message-compiler/package.json @@ -24,11 +24,9 @@ "url": "https://github.com/intlify/vue-i18n/issues" }, "files": [ - "index.js", "dist" ], - "main": "index.js", - "module": "dist/message-compiler.mjs", + "module": "dist/message-compiler.js", "unpkg": "dist/message-compiler.global.js", "jsdelivr": "dist/message-compiler.global.js", "types": "dist/message-compiler.d.ts", @@ -45,7 +43,6 @@ "mjs", "mjs-node", "browser", - "cjs", "global" ], "enableFullBundleForEsmBrowser": true @@ -53,18 +50,13 @@ "exports": { ".": { "types": "./dist/message-compiler.d.ts", - "import": "./dist/message-compiler.mjs", + "import": "./dist/message-compiler.js", "browser": "./dist/message-compiler.esm-browser.js", "node": { "import": { - "production": "./dist/message-compiler.node.mjs", - "development": "./dist/message-compiler.node.mjs", - "default": "./dist/message-compiler.node.mjs" - }, - "require": { - "production": "./dist/message-compiler.prod.cjs", - "development": "./dist/message-compiler.cjs", - "default": "./index.js" + "production": "./dist/message-compiler.node.js", + "development": "./dist/message-compiler.node.js", + "default": "./dist/message-compiler.node.js" } } }, diff --git a/packages/petite-vue-i18n/index.js b/packages/petite-vue-i18n/index.js deleted file mode 100644 index a93b001de..000000000 --- a/packages/petite-vue-i18n/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./dist/petite-vue-i18n.prod.cjs') -} else { - module.exports = require('./dist/petite-vue-i18n.cjs') -} diff --git a/packages/petite-vue-i18n/package.json b/packages/petite-vue-i18n/package.json index 97162f603..4291425c6 100644 --- a/packages/petite-vue-i18n/package.json +++ b/packages/petite-vue-i18n/package.json @@ -26,11 +26,9 @@ "url": "https://github.com/intlify/vue-i18n/issues" }, "files": [ - "index.js", "dist" ], - "main": "index.js", - "module": "dist/petite-vue-i18n.mjs", + "module": "dist/petite-vue-i18n.js", "unpkg": "dist/petite-vue-i18n.global.js", "jsdelivr": "dist/petite-vue-i18n.global.js", "types": "dist/petite-vue-i18n.d.ts", @@ -58,7 +56,6 @@ "mjs-node-runtime", "browser", "browser-runtime", - "cjs", "global", "global-runtime" ] @@ -66,18 +63,13 @@ "exports": { ".": { "types": "./dist/petite-vue-i18n.d.ts", - "import": "./dist/petite-vue-i18n.mjs", + "import": "./dist/petite-vue-i18n.js", "browser": "./dist/petite-vue-i18n.esm-browser.js", "node": { "import": { - "production": "./dist/petite-vue-i18n.node.mjs", - "development": "./dist/petite-vue-i18n.node.mjs", - "default": "./dist/petite-vue-i18n.node.mjs" - }, - "require": { - "production": "./dist/petite-vue-i18n.prod.cjs", - "development": "./dist/petite-vue-i18n.cjs", - "default": "./index.js" + "production": "./dist/petite-vue-i18n.node.js", + "development": "./dist/petite-vue-i18n.node.js", + "default": "./dist/petite-vue-i18n.node.js" } } }, diff --git a/packages/shared/index.js b/packages/shared/index.js deleted file mode 100644 index 6aa3731fd..000000000 --- a/packages/shared/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'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/package.json b/packages/shared/package.json index 385b1af68..9df8841ad 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -23,11 +23,9 @@ "url": "https://github.com/intlify/vue-i18n/issues" }, "files": [ - "index.js", "dist" ], - "main": "index.js", - "module": "dist/shared.mjs", + "module": "dist/shared.js", "types": "dist/shared.d.ts", "engines": { "node": ">= 16" @@ -36,25 +34,18 @@ "name": "IntlifyShared", "formats": [ "mjs", - "browser", - "cjs" + "browser" ] }, "exports": { ".": { "types": "./dist/shared.d.ts", - "import": "./dist/shared.mjs", + "import": "./dist/shared.js", "browser": "./dist/shared.esm-browser.js", "node": { "import": { - "production": "./dist/shared.prod.cjs", - "development": "./dist/shared.mjs", - "default": "./dist/shared.mjs" - }, - "require": { - "production": "./dist/shared.prod.cjs", - "development": "./dist/shared.cjs", - "default": "./index.js" + "development": "./dist/shared.js", + "default": "./dist/shared.js" } } }, diff --git a/packages/vue-i18n-core/index.js b/packages/vue-i18n-core/index.js deleted file mode 100644 index ee69d2b71..000000000 --- a/packages/vue-i18n-core/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./dist/vue-i18n-core.prod.cjs') -} else { - module.exports = require('./dist/vue-i18n-core.cjs') -} diff --git a/packages/vue-i18n-core/package.json b/packages/vue-i18n-core/package.json index c83192054..5a30c3c21 100644 --- a/packages/vue-i18n-core/package.json +++ b/packages/vue-i18n-core/package.json @@ -26,10 +26,8 @@ "url": "https://github.com/intlify/vue-i18n/issues" }, "files": [ - "index.js", "dist" ], - "main": "index.js", "module": "dist/vue-i18n-core.mjs", "unpkg": "dist/vue-i18n-core.global.js", "jsdelivr": "dist/vue-i18n-core.global.js", @@ -53,42 +51,29 @@ "formats": [ "mjs", "browser", - "cjs", "global" ] }, "exports": { ".": { "types": "./dist/vue-i18n-core.d.ts", - "import": "./dist/vue-i18n-core.mjs", + "import": "./dist/vue-i18n-core.js", "browser": "./dist/vue-i18n-core.esm-browser.js", "node": { "import": { - "production": "./dist/vue-i18n-core.prod.cjs", - "development": "./dist/vue-i18n-core.mjs", - "default": "./dist/vue-i18n-core.mjs" - }, - "require": { - "production": "./dist/vue-i18n-core.prod.cjs", - "development": "./dist/vue-i18n-core.cjs", - "default": "./index.js" + "development": "./dist/vue-i18n-core.js", + "default": "./dist/vue-i18n-core.js" } } }, "./petite": { "types": "./dist/petite-vue-i18n-core.d.ts", - "import": "./dist/petite-vue-i18n-core.mjs", + "import": "./dist/petite-vue-i18n-core.js", "browser": "./dist/petite-vue-i18n-core.esm-browser.js", "node": { "import": { - "production": "./petite-dist/vue-i18n-core.prod.cjs", - "development": "./petite-dist/vue-i18n-core.mjs", - "default": "./dist/petite-vue-i18n-core.mjs" - }, - "require": { - "production": "./dist/petite-vue-i18n-core.prod.cjs", - "development": "./dist/petite-vue-i18n-core.cjs", - "default": "./petite.js" + "development": "./petite-dist/vue-i18n-core.js", + "default": "./dist/petite-vue-i18n-core.js" } } }, diff --git a/packages/vue-i18n-core/petite.js b/packages/vue-i18n-core/petite.js deleted file mode 100644 index 44e0a7a2b..000000000 --- a/packages/vue-i18n-core/petite.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./dist/petite-vue-i18n-core.prod.cjs') -} else { - module.exports = require('./dist/petite-vue-i18n-core.cjs') -} diff --git a/packages/vue-i18n/README.md b/packages/vue-i18n/README.md index 1a8dcadfb..02cffe254 100644 --- a/packages/vue-i18n/README.md +++ b/packages/vue-i18n/README.md @@ -38,21 +38,13 @@ Internationalization plugin for Vue.js ### For Node.js (Server-Side) -- **`vue-i18n.cjs(.prod).js`**: - - For CommonJS usage in Node.js - - For use in Node.js via `require()` - - If you bundle your app with webpack with `target: 'node'` and properly externalize `vue-i18n`, 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` - -- **`vue-i18n(.runtime).node.mjs`**: - - For ES Moudles usage in Node.js +- **`vue-i18n(.runtime).node.js`**: + - For ES Modules usage in Node.js - For use in Node.js via `import` - The dev/prod files are pre-built, but the appropriate file is automatically required based on `process.env.NODE_ENV` - - This module is proxy module of `vue-i18n(.runtime).mjs` - - **`vue-i18n.runtime.node.mjs`**: is runtime only - - **`vue-i18n.node.mjs`**: includes the runtime compiler - -> NOTE: ES Modules will be the future of the Node.js module system. The `vue-i18n.cjs(.prod).js` will be deprecated in the future. We recommend you would use `vue-i18n(.runtime).node.mjs`. 9.3+ + - This module is proxy module of `vue-i18n(.runtime).js` + - **`vue-i18n.runtime.node.js`**: is runtime only + - **`vue-i18n.node.js`**: includes the runtime compiler ## For Bundler feature flags diff --git a/packages/vue-i18n/index.js b/packages/vue-i18n/index.js deleted file mode 100644 index 607e38d2b..000000000 --- a/packages/vue-i18n/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./dist/vue-i18n.prod.cjs') -} else { - module.exports = require('./dist/vue-i18n.cjs') -} diff --git a/packages/vue-i18n/package.json b/packages/vue-i18n/package.json index 052543701..1467c77f2 100644 --- a/packages/vue-i18n/package.json +++ b/packages/vue-i18n/package.json @@ -25,12 +25,10 @@ "url": "https://github.com/intlify/vue-i18n/issues" }, "files": [ - "index.js", "dist", "vetur" ], - "main": "index.js", - "module": "dist/vue-i18n.mjs", + "module": "dist/vue-i18n.js", "unpkg": "dist/vue-i18n.global.js", "jsdelivr": "dist/vue-i18n.global.js", "types": "dist/vue-i18n.d.ts", @@ -58,7 +56,6 @@ "mjs-node-runtime", "browser", "browser-runtime", - "cjs", "global", "global-runtime" ] @@ -66,18 +63,13 @@ "exports": { ".": { "types": "./dist/vue-i18n.d.ts", - "import": "./dist/vue-i18n.mjs", + "import": "./dist/vue-i18n.js", "browser": "./dist/vue-i18n.esm-browser.js", "node": { "import": { - "production": "./dist/vue-i18n.node.mjs", - "development": "./dist/vue-i18n.node.mjs", - "default": "./dist/vue-i18n.node.mjs" - }, - "require": { - "production": "./dist/vue-i18n.prod.cjs", - "development": "./dist/vue-i18n.cjs", - "default": "./index.js" + "production": "./dist/vue-i18n.node.js", + "development": "./dist/vue-i18n.node.js", + "default": "./dist/vue-i18n.node.js" } } }, diff --git a/rollup.config.mjs b/rollup.config.mjs index 8b3be9ce9..dff6ab229 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -34,42 +34,36 @@ let hasTSChecked = false function resolveStubs(name, ns = '') { return { - [`dist/${ns}${name}.cjs`]: `${ns}${name}.cjs.js`, - [`dist/${ns}${name}.mjs`]: `${ns}${name}.esm-bundler.js`, - [`dist/${ns}${name}.runtime.mjs`]: `${ns}${name}.runtime.esm-bundler.js`, - [`dist/${ns}${name}.prod.cjs`]: `${ns}${name}.cjs.prod.js` + [`dist/${ns}${name}.js`]: `${ns}${name}.esm-bundler.js`, + [`dist/${ns}${name}.runtime.js`]: `${ns}${name}.runtime.esm-bundler.js`, } } function resolveOutputConfigs(name, ns = '') { return { mjs: { - file: `dist/${ns}${name}.mjs`, + file: `dist/${ns}${name}.js`, format: `es` }, 'mjs-node': { - file: `dist/${ns}${name}.node.mjs`, + file: `dist/${ns}${name}.node.js`, format: `es` }, browser: { file: `dist/${ns}${name}.esm-browser.js`, format: `es` }, - cjs: { - file: `dist/${ns}${name}.cjs`, - format: `cjs` - }, global: { file: `dist/${ns}${name}.global.js`, format: `iife` }, // runtime-only builds, for '@intlify/core' and 'vue-i18n' package only 'mjs-runtime': { - file: `dist/${ns}${name}.runtime.mjs`, + file: `dist/${ns}${name}.runtime.js`, format: `es` }, 'mjs-node-runtime': { - file: `dist/${ns}${name}.runtime.node.mjs`, + file: `dist/${ns}${name}.runtime.node.js`, format: `es` }, 'browser-runtime': { @@ -84,7 +78,7 @@ function resolveOutputConfigs(name, ns = '') { } const outputConfigs = resolveOutputConfigs(name) -const defaultFormats = ['esm-bundler', 'cjs'] +const defaultFormats = ['esm-bundler'] const inlineFormats = process.env.FORMATS && process.env.FORMATS.split(',') const packageFormats = inlineFormats || packageOptions.formats || defaultFormats @@ -112,12 +106,6 @@ if (process.env.NODE_ENV === 'production') { if (packageOptions.prod === false) { return } - if (format === 'cjs') { - packageConfigs.push(createProductionConfig(format, name)) - if (name === 'vue-i18n-core') { - packageConfigs.push(createProductionConfig(format, name, 'petite-')) - } - } if (/^(global|browser)(-runtime)?/.test(format)) { packageConfigs.push(createMinifiedConfig(format, outputConfigs[format])) if (name === 'vue-i18n-core') { @@ -158,7 +146,7 @@ function createConfig(format, _output, plugins = []) { process.env.__DEV__ === 'false' || /\.prod\.[cm]?js$/.test(output.file) const isBundlerESMBuild = /mjs/.test(format) const isBrowserESMBuild = /browser/.test(format) - const isNodeBuild = output.file.includes('.node.') || format === 'cjs' + const isNodeBuild = output.file.includes('.node.') const isGlobalBuild = /global/.test(format) const isRuntimeOnlyBuild = /runtime/.test(format) const isLite = /petite-vue-i18n/.test(output.file) @@ -209,10 +197,7 @@ function createConfig(format, _output, plugins = []) { ...Object.keys(pkg.peerDependencies || {}) ] - const nodePlugins = - // packageOptions.enableNonBrowserBranches && format !== 'cjs' - format !== 'cjs' - ? [ + const nodePlugins = [ require('@rollup/plugin-node-resolve').nodeResolve(), require('@rollup/plugin-commonjs')({ sourceMap: false @@ -220,7 +205,6 @@ function createConfig(format, _output, plugins = []) { require('rollup-plugin-node-builtins')(), require('rollup-plugin-node-globals')() ] - : [] return { input: resolve(entryFile), @@ -253,10 +237,7 @@ function createConfig(format, _output, plugins = []) { const stub = stubs[rawFile] if (!stub) return - const contents = - format === 'cjs' - ? `module.exports = require('../${rawFile}')` - : `export * from '../${rawFile}'` + const contents = `export * from '../${rawFile}'` await fs.writeFile(resolve(`dist/${stub}`), contents) console.log(`created stub ${pc.bold(`dist/${stub}`)}`) @@ -391,15 +372,6 @@ function createReplacePlugin( }) } -function createProductionConfig(format, name, ns = '') { - const extension = format === 'cjs' || format === 'mjs' ? format : 'js' - const descriptor = format === 'cjs' || format === 'mjs' ? '' : `.${format}` - return createConfig(format, { - file: `dist/${ns}${name}${descriptor}.prod.${extension}`, - format: outputConfigs[format].format - }) -} - function createMinifiedConfig(format, output) { const newOutput = { file: output.file.replace(/\.js$/, '.prod.js'), diff --git a/scripts/build-rolldown.ts b/scripts/build-rolldown.ts index 96c7ec98a..533b17beb 100644 --- a/scripts/build-rolldown.ts +++ b/scripts/build-rolldown.ts @@ -3,14 +3,14 @@ Produces production builds and stitches together d.ts files. To specify the package to build, simply pass its name and the desired build formats to output (defaults to `buildOptions.formats` specified in that package, -or "esm,cjs"): +or "esm"): ``` # name supports fuzzy match. will build all packages with name containing "core-base": pnpm build core-base # specify the format to output -pnpm build core --formats cjs +pnpm build core --formats mjs ``` */ diff --git a/scripts/build.ts b/scripts/build.ts index 3ca8614c8..66e1bf15a 100644 --- a/scripts/build.ts +++ b/scripts/build.ts @@ -3,14 +3,14 @@ Produces production builds and stitches together d.ts files. To specify the package to build, simply pass its name and the desired build formats to output (defaults to `buildOptions.formats` specified in that package, -or "esm,cjs"): +or "esm"): ``` # name supports fuzzy match. will build all packages with name containing "core-base": pnpm build core-base # specify the format to output -pnpm build core --formats cjs +pnpm build core --formats mjs ``` */ diff --git a/scripts/dev.ts b/scripts/dev.ts index 7caf00bb0..b45459ce8 100644 --- a/scripts/dev.ts +++ b/scripts/dev.ts @@ -9,7 +9,7 @@ formats to watch (defaults to "global"): pnpm dev core-base # specify the format to output -pnpm dev core --formats cjs +pnpm dev core --formats mjs # Can also drop all __DEV__ blocks with: __DEV__=false pnpm run dev diff --git a/scripts/rolldown.ts b/scripts/rolldown.ts index ceb700c64..94feba102 100644 --- a/scripts/rolldown.ts +++ b/scripts/rolldown.ts @@ -55,10 +55,8 @@ export function createConfigsForPackage({ function resolveStubs(name: string, ns = '') { return { - [`dist/${ns}${name}.cjs`]: `${ns}${name}.cjs.js`, - [`dist/${ns}${name}.mjs`]: `${ns}${name}.esm-bundler.js`, - [`dist/${ns}${name}.runtime.mjs`]: `${ns}${name}.runtime.esm-bundler.js`, - [`dist/${ns}${name}.prod.cjs`]: `${ns}${name}.cjs.prod.js` + [`dist/${ns}${name}.js`]: `${ns}${name}.esm-bundler.js`, + [`dist/${ns}${name}.runtime.js`]: `${ns}${name}.runtime.esm-bundler.js` } } @@ -68,32 +66,28 @@ export function createConfigsForPackage({ ): Record { return { mjs: { - file: resolve(`dist/${ns}${name}.mjs`), + file: resolve(`dist/${ns}${name}.js`), format: `es` }, 'mjs-node': { - file: resolve(`dist/${ns}${name}.node.mjs`), + file: resolve(`dist/${ns}${name}.node.js`), format: `es` }, browser: { file: resolve(`dist/${ns}${name}.esm-browser.js`), format: `es` }, - cjs: { - file: resolve(`dist/${ns}${name}.cjs`), - format: `cjs` - }, global: { file: resolve(`dist/${ns}${name}.global.js`), format: `iife` }, // runtime-only builds, for '@intlify/core' and 'vue-i18n' package only 'mjs-runtime': { - file: resolve(`dist/${ns}${name}.runtime.mjs`), + file: resolve(`dist/${ns}${name}.runtime.js`), format: `es` }, 'mjs-node-runtime': { - file: resolve(`dist/${ns}${name}.runtime.node.mjs`), + file: resolve(`dist/${ns}${name}.runtime.node.js`), format: `es` }, 'browser-runtime': { @@ -114,10 +108,7 @@ export function createConfigsForPackage({ const outputConfigs = resolveOutputConfigs(name) - const resolvedFormats = ( - formats || - packageOptions.formats || ['esm-bundler', 'cjs'] - ) + const resolvedFormats = (formats || packageOptions.formats || ['esm-bundler']) .filter(Boolean) .filter((format: string) => outputConfigs[format]) @@ -144,12 +135,6 @@ export function createConfigsForPackage({ if (packageOptions.prod === false) { return } - if (format === 'cjs') { - packageConfigs.push(createProductionConfig(format, name)) - if (name === 'vue-i18n-core') { - packageConfigs.push(createProductionConfig(format, name, 'petite-')) - } - } if (/^(global|browser)(-runtime)?/.test(format)) { packageConfigs.push(createMinifiedConfig(format, outputConfigs[format])) if (name === 'vue-i18n-core') { @@ -178,9 +163,7 @@ export function createConfigsForPackage({ const isBundlerESMBuild = /mjs/.test(format) const isBrowserESMBuild = /browser/.test(format) && !packageOptions.enableNonBrowserBranches - // const isCJSBuild = format === 'cjs' - const isNodeBuild = - String(output.file).includes('.node.') || format === 'cjs' + const isNodeBuild = String(output.file).includes('.node.') const isGlobalBuild = /global/.test(format) const isRuntimeOnlyBuild = /runtime/.test(format) const isLite = /petite-vue-i18n/.test(String(output.file)) @@ -189,9 +172,6 @@ export function createConfigsForPackage({ output.sourcemap = sourceMap output.banner = banner output.externalLiveBindings = false - // if (isCJSBuild) { - // output.esModule = true - // } if ( name === 'vue-i18n' || name === 'vue-i18n-core' || @@ -317,11 +297,9 @@ export function createConfigsForPackage({ } function resolveNodePlugins() { - const nodePlugins = - (format === 'cjs' && Object.keys(pkg.devDependencies || {}).length) || - packageOptions.enableNonBrowserBranches - ? [...(format === 'cjs' ? [] : [polyfillNode()])] - : [] + const nodePlugins = packageOptions.enableNonBrowserBranches + ? [...[polyfillNode()]] + : [] return nodePlugins } @@ -331,7 +309,7 @@ export function createConfigsForPackage({ // used alone. external: resolveExternal(), define: resolveDefine(), - platform: format === 'cjs' ? 'node' : 'browser', + platform: 'browser', resolve: { alias: entries }, @@ -351,10 +329,7 @@ export function createConfigsForPackage({ } const filename = path.basename(rawFile) - const contents = - format === 'cjs' - ? `module.exports = require('./${filename}')` - : `export * from './${filename}'` + const contents = `export * from './${filename}'` await fs.writeFile(stub, contents) // console.log(`created stub ${pc.bold(path.join('packages', target, 'dist', path.basename(stub)))}`) @@ -369,19 +344,6 @@ export function createConfigsForPackage({ } } - function createProductionConfig( - format: string, - name: string, - ns = '' - ): RolldownOptions { - const extension = format === 'cjs' || format === 'mjs' ? format : 'js' - const descriptor = format === 'cjs' || format === 'mjs' ? '' : `.${format}` - return createConfig(format, { - file: resolve(`dist/${ns}${name}${descriptor}.prod.${extension}`), - format: outputConfigs[format].format - }) - } - function createMinifiedConfig( format: string, output: OutputOptions diff --git a/scripts/utils.ts b/scripts/utils.ts index 564bcf324..b938e5daf 100644 --- a/scripts/utils.ts +++ b/scripts/utils.ts @@ -113,8 +113,7 @@ export async function checkSizeDistFiles(target: string) { return dirs.filter(file => /^(message-compiler|core|vue-i18n|petite-vue-i18n)/.test(file)) .filter(file => !/^core-base/.test(file)) .filter(file => !/^vue-i18n-core/.test(file)) - .filter(file => /prod.(cjs|js)$/.test(file)) - .filter(file => !/cjs.prod.js$/.test(file)) + .filter(file => /prod\.js$/.test(file)) } export async function readJson(path: string) {