From d8bc1fad5fe213ebabfb57085aed4710c352670b Mon Sep 17 00:00:00 2001 From: bendtherules Date: Thu, 8 Aug 2019 18:21:17 +0530 Subject: [PATCH] Setup multi-dist build with cjs, esm --- TODO.md | 14 +++++++++++++- index.js | 4 ++-- package-lock.json | 19 +++++++++++++++++++ package.json | 5 +++-- rollup.config.js | 26 ++++++++++++-------------- 5 files changed, 49 insertions(+), 19 deletions(-) diff --git a/TODO.md b/TODO.md index 07b0365..701ddb4 100644 --- a/TODO.md +++ b/TODO.md @@ -1,4 +1,16 @@ 1. Write docs and examples 2. Reduce testcase boilerplate code for similar tests 3. Publish to npm -4. Build some demo \ No newline at end of file +4. Build some demo + +5. Pack separate files + +Affected parts +--------------- +a. Rollup config (input and output) X +b. package.json entrypoints X +c. root index.js for dynamic prod or dev redirection X +d. change unpkg links in readme +e. separate folder for types ?? (change tsconfig) + +f. Enable umd build from one index file \ No newline at end of file diff --git a/index.js b/index.js index a8eefcd..01fa055 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,7 @@ "use strict"; if (process.env.NODE_ENV === "production") { - module.exports = require("./react-fiber-traverse.cjs.production.js"); + module.exports = require("./cjs-production/index.js"); } else { - module.exports = require("./react-fiber-traverse.cjs.development.js"); + module.exports = require("./cjs-development/index.js"); } diff --git a/package-lock.json b/package-lock.json index 2775e35..4604511 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10547,6 +10547,25 @@ } } }, + "rollup-plugin-multi-input": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-multi-input/-/rollup-plugin-multi-input-1.0.2.tgz", + "integrity": "sha512-ktLat6+lrvT3Z3kVrUr/Fy3+5xaj/sIfNpBfDQO2P6sd3lAGPI+yi2Dj+fxxkVubIpRocN0Z4jPkN+c28uJimA==", + "dev": true, + "requires": { + "core-js": "^3.1.3", + "fast-glob": "^3.0.0", + "lodash": "^4.17.11" + }, + "dependencies": { + "core-js": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.1.4.tgz", + "integrity": "sha512-YNZN8lt82XIMLnLirj9MhKDFZHalwzzrL9YLt6eb0T5D0EDl4IQ90IGkua8mHbnxNrkj1d8hbdizMc0Qmg1WnQ==", + "dev": true + } + } + }, "rollup-plugin-node-resolve": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-5.2.0.tgz", diff --git a/package.json b/package.json index 923cb7f..e9a26e5 100644 --- a/package.json +++ b/package.json @@ -3,8 +3,8 @@ "version": "0.0.3", "description": "Traverse and other utils on top of React fiber tree", "main": "dist/index.js", - "module": "dist/react-fiber-traverse.esm.js", - "jsnext:main": "dist/react-fiber-traverse.esm.js", + "module": "dist/esm/index.js", + "jsnext:main": "dist/esm/index.js", "typings": "dist/index.d.ts", "files": [ "dist" @@ -108,6 +108,7 @@ "rollup-plugin-babel": "4.3.3", "rollup-plugin-commonjs": "10.0.1", "rollup-plugin-filesize": "6.1.1", + "rollup-plugin-multi-input": "^1.0.2", "rollup-plugin-node-resolve": "5.2.0", "rollup-plugin-replace": "2.2.0", "rollup-plugin-size-snapshot": "0.9.0", diff --git a/rollup.config.js b/rollup.config.js index b3e065f..13f06aa 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -2,9 +2,10 @@ import babel from "rollup-plugin-babel"; import commonjs from "rollup-plugin-commonjs"; import nodeResolve from "rollup-plugin-node-resolve"; import replace from "rollup-plugin-replace"; -import { sizeSnapshot } from "rollup-plugin-size-snapshot"; +// import { sizeSnapshot } from "rollup-plugin-size-snapshot"; import sourcemaps from "rollup-plugin-sourcemaps"; import { terser } from "rollup-plugin-terser"; +import multiInput from "rollup-plugin-multi-input"; import pkg from "./package.json"; const CJS_DEV = "CJS_DEV"; @@ -13,7 +14,7 @@ const ES = "ES"; const UMD_DEV = "UMD_DEV"; const UMD_PROD = "UMD_PROD"; -const input = "./compiled/index.js"; +const input = ["compiled/*.js"]; const getGlobals = bundleType => { const baseGlobals = { @@ -124,7 +125,7 @@ const getPlugins = bundleType => [ ) }), sourcemaps(), - sizeSnapshot(), + // sizeSnapshot(), isProduction(bundleType) && terser({ sourcemap: true, @@ -136,16 +137,15 @@ const getPlugins = bundleType => [ warnings: true, ecma: 5, toplevel: false - }) + }), + multiInput({ relative: "compiled/" }) ]; const getCjsConfig = bundleType => ({ input, external: getExternal(bundleType), output: { - file: `dist/react-fiber-traverse.cjs.${ - isProduction(bundleType) ? "production" : "development" - }.js`, + dir: `dist/cjs-${isProduction(bundleType) ? "production" : "development"}`, format: "cjs", sourcemap: true }, @@ -156,7 +156,7 @@ const getEsConfig = () => ({ input, external: getExternal(ES), output: { - file: pkg.module, + dir: `dist/esm`, format: "es", sourcemap: true }, @@ -167,9 +167,7 @@ const getUmdConfig = bundleType => ({ input, external: getExternal(bundleType), output: { - file: `dist/react-fiber-traverse.umd.${ - isProduction(bundleType) ? "production" : "development" - }.js`, + dir: `dist/umd-${isProduction(bundleType) ? "production" : "development"}`, format: "umd", globals: getGlobals(bundleType), name: "reactFiberTraverse", @@ -181,7 +179,7 @@ const getUmdConfig = bundleType => ({ export default [ getCjsConfig(CJS_DEV), getCjsConfig(CJS_PROD), - getEsConfig(), - getUmdConfig(UMD_DEV), - getUmdConfig(UMD_PROD) + getEsConfig() + // getUmdConfig(UMD_DEV), + // getUmdConfig(UMD_PROD) ];