Skip to content

Commit

Permalink
ship ESM only (#2112)
Browse files Browse the repository at this point in the history
* drop cjs: source

* drop cjs: docs

* drop cjs: comment

* mjs to js

---------

Co-authored-by: kazuya kawaguchi <[email protected]>
  • Loading branch information
babu-ch and kazupon authored Feb 19, 2025
1 parent 56a45f5 commit 56ffe24
Show file tree
Hide file tree
Showing 28 changed files with 87 additions and 326 deletions.
7 changes: 1 addition & 6 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
22 changes: 4 additions & 18 deletions docs/guide/extra/dist.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`<wbr/>`.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`<wbr/>`.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.
3 changes: 1 addition & 2 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ export default [
}
},
{
files: ['**/*.js', '**/*.cjs', '**/*.mjs'],
files: ['**/*.js', '**/*.mjs'],
...ts.configs.disableTypeChecked
},

Expand Down Expand Up @@ -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',
Expand Down
7 changes: 0 additions & 7 deletions packages/core-base/index.js

This file was deleted.

18 changes: 5 additions & 13 deletions packages/core-base/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -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"
}
}
},
Expand Down
19 changes: 5 additions & 14 deletions packages/core/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
7 changes: 0 additions & 7 deletions packages/core/index.js

This file was deleted.

18 changes: 5 additions & 13 deletions packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -48,26 +46,20 @@
"mjs-node-runtime",
"browser",
"browser-runtime",
"cjs",
"global",
"global-runtime"
]
},
"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"
}
}
},
Expand Down
7 changes: 0 additions & 7 deletions packages/devtools-types/index.js

This file was deleted.

20 changes: 6 additions & 14 deletions packages/devtools-types/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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:*",
Expand All @@ -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"
}
}
},
Expand Down
7 changes: 0 additions & 7 deletions packages/message-compiler/index.js

This file was deleted.

18 changes: 5 additions & 13 deletions packages/message-compiler/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -45,26 +43,20 @@
"mjs",
"mjs-node",
"browser",
"cjs",
"global"
],
"enableFullBundleForEsmBrowser": true
},
"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"
}
}
},
Expand Down
7 changes: 0 additions & 7 deletions packages/petite-vue-i18n/index.js

This file was deleted.

18 changes: 5 additions & 13 deletions packages/petite-vue-i18n/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -58,26 +56,20 @@
"mjs-node-runtime",
"browser",
"browser-runtime",
"cjs",
"global",
"global-runtime"
]
},
"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"
}
}
},
Expand Down
7 changes: 0 additions & 7 deletions packages/shared/index.js

This file was deleted.

Loading

0 comments on commit 56ffe24

Please sign in to comment.