From 57f8a3cf653c2bd6d99cbccecdc41447b0e4e21a Mon Sep 17 00:00:00 2001 From: Jonny Gerig Meyer Date: Wed, 15 Nov 2023 10:58:54 -0500 Subject: [PATCH] Add CJS file to /fn entry and fix legacy builds --- package.json | 12 +++------ rollup.config.js | 54 +++++++++++++++++++++++++++++------------ rollup.legacy.config.js | 20 ++++++++------- 3 files changed, 52 insertions(+), 34 deletions(-) diff --git a/package.json b/package.json index 0d0dc8f99..d08384f9e 100644 --- a/package.json +++ b/package.json @@ -3,14 +3,7 @@ "version": "0.4.5", "description": "Let’s get serious about color", "files": [ - "dist/color.cjs", - "dist/color.cjs.map", - "dist/color.js", - "dist/color.js.map", - "dist/color.legacy.cjs", - "dist/color.legacy.cjs.map", - "dist/color.legacy.js", - "dist/color.legacy.js.map", + "dist/", "src/", "types/dist/", "types/src/", @@ -24,7 +17,8 @@ }, "./fn": { "types": "./types/src/index-fn.d.ts", - "import": "./src/index-fn.js" + "import": "./src/index-fn.js", + "require": "./dist/color-fn.cjs" }, "./dist/*": "./dist/*" }, diff --git a/rollup.config.js b/rollup.config.js index 80e64fb70..29cb0e58b 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,6 +1,6 @@ import terser from "@rollup/plugin-terser"; -let bundles = [ +const bundles = [ { "file": "dist/color.global.js", "format": "iife", @@ -20,22 +20,44 @@ let bundles = [ }, ]; +const fnBundles = [ + { + "file": "dist/color-fn.cjs", + "format": "cjs", + "sourcemap": true, + "exports": "named", + }, +]; + // Add minified versions of every bundle -bundles = bundles.flatMap(bundle => { - let minBundle = Object.assign({}, bundle); - minBundle.file = minBundle.file.replace(/\.\w+$/, ".min$&"); - minBundle.plugins ||= []; - minBundle.plugins.push(terser()); +const addMinBundle = (bundles) => { + return bundles.flatMap(bundle => { + const minBundle = Object.assign({}, bundle); + minBundle.file = minBundle.file.replace(/\.\w+$/, ".min$&"); + minBundle.plugins ||= []; + minBundle.plugins.push(terser()); - return [bundle, minBundle]; -}); + return [bundle, minBundle]; + }); +}; -export default { - input: "src/index.js", - output: bundles, - onwarn (warning, rollupWarn) { - if (warning.code !== "CIRCULAR_DEPENDENCY") { - rollupWarn(warning); +export default [ + { + input: "src/index.js", + output: addMinBundle(bundles), + onwarn (warning, rollupWarn) { + if (warning.code !== "CIRCULAR_DEPENDENCY") { + rollupWarn(warning); + } } - } -}; + }, + { + input: "src/index-fn.js", + output: addMinBundle(fnBundles), + onwarn (warning, rollupWarn) { + if (warning.code !== "CIRCULAR_DEPENDENCY") { + rollupWarn(warning); + } + } + }, +]; diff --git a/rollup.legacy.config.js b/rollup.legacy.config.js index 37a20bcf6..07f72d272 100644 --- a/rollup.legacy.config.js +++ b/rollup.legacy.config.js @@ -5,15 +5,17 @@ import { nodeResolve } from "@rollup/plugin-node-resolve"; import defaultConfig from "./rollup.config.js"; const legacyPlugins = [ - commonjs(), - nodeResolve(), + commonjs({ strictRequires: true }), + nodeResolve({ ignoreSideEffectsForRoot: true }), babel({ babelHelpers: "bundled", exclude: "node_modules/**" }), ]; -export default Object.assign(defaultConfig, { - output: defaultConfig.output.map(bundle => ({ - ...bundle, - file: bundle.file.replace(/\.(?:min\.)?\w+$/, ".legacy$&"), - })), - plugins: [...(defaultConfig.plugins || []), ...legacyPlugins] -}); +export default defaultConfig.map(config => + Object.assign(config, { + output: config.output.map(bundle => ({ + ...bundle, + file: bundle.file.replace(/\.(?:min\.)?\w+$/, ".legacy$&"), + })), + plugins: [...(config.plugins || []), ...legacyPlugins] + }) +);