From 51db107a5fc19b550ba6681aa692263309c842d5 Mon Sep 17 00:00:00 2001 From: "T. Kameyama" Date: Thu, 21 Mar 2024 04:37:32 +0900 Subject: [PATCH] build(package.json, rollup.config.js): fix esm build to meet Node.js standard To meet Node.js standard, 2 things should be fixed: * ESM file should use `.mjs` extention instead of `.esm.js`. * `module` field in `package.json` is not standard way of Node.js. Use `exports` field instead. fix #649 --- package.json | 9 ++++++++- rollup.config.js | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index a68f0e5b..c0bbfecd 100644 --- a/package.json +++ b/package.json @@ -27,8 +27,15 @@ "colour" ], "main": "dist/polished.cjs.js", - "module": "dist/polished.esm.js", + "module": "dist/polished.mjs", "types": "lib/index.d.ts", + "exports": { + ".": { + "types": "./lib/index.d.ts", + "import": "./dist/polished.mjs", + "default": "./dist/polished.cjs.js" + } + }, "sideEffects": false, "scripts": { "build": "yarn build:lib && yarn build:dist && yarn build:flow && yarn build:docs && yarn build:typescript", diff --git a/rollup.config.js b/rollup.config.js index 11ff5ebd..3fb27fa0 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -44,7 +44,7 @@ const getBabelOptions = ({ useESModules }, targets) => ({ export default [ { input, - output: { file: `dist/${name}.esm.js`, format: 'esm' }, + output: { file: `dist/${name}.mjs`, format: 'esm' }, external, plugins: [sourceMaps(), resolve(), babel(getBabelOptions({ useESModules: true }))], },