From 15cafaa0eea54cfb43c23a98dc64ff7e8b520652 Mon Sep 17 00:00:00 2001 From: Josh Black Date: Mon, 10 Oct 2022 12:49:12 -0500 Subject: [PATCH 01/12] feat(bundle): add exports for test-helpers --- package-lock.json | 25 ++++++++++++------------- package.json | 5 ++++- rollup.config.js | 24 +++++++++++++++++++++++- 3 files changed, 39 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index 94bbc862130..9a0b6bb1c47 100644 --- a/package-lock.json +++ b/package-lock.json @@ -100,6 +100,7 @@ "eslint-plugin-primer-react": "0.7.4", "eslint-plugin-react": "7.24.0", "eslint-plugin-react-hooks": "4.2.0", + "fast-glob": "3.2.12", "front-matter": "4.0.2", "husky": "7.0.4", "jest": "29.0.1", @@ -21690,20 +21691,19 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", - "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", + "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" + "micromatch": "^4.0.4" }, "engines": { - "node": ">=8" + "node": ">=8.6.0" } }, "node_modules/fast-glob/node_modules/braces": { @@ -57547,17 +57547,16 @@ "dev": true }, "fast-glob": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", - "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", + "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" + "micromatch": "^4.0.4" }, "dependencies": { "braces": { diff --git a/package.json b/package.json index 4b37325e7a3..9ef9f9a9d96 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,9 @@ "./lib/*.js", "./lib/*/index.js" ] - } + }, + "./lib-esm/utils/test-helpers": "./lib-esm/utils/test-helpers.js", + "./lib/utils/test-helpers": "./lib/utils/test-helpers.js" }, "typings": "lib/index.d.ts", "sideEffects": false, @@ -169,6 +171,7 @@ "eslint-plugin-primer-react": "0.7.4", "eslint-plugin-react": "7.24.0", "eslint-plugin-react-hooks": "4.2.0", + "fast-glob": "3.2.12", "front-matter": "4.0.2", "husky": "7.0.4", "jest": "29.0.1", diff --git a/rollup.config.js b/rollup.config.js index d6124961423..24b044ecfc7 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,10 +1,32 @@ import commonjs from '@rollup/plugin-commonjs' import resolve from '@rollup/plugin-node-resolve' import babel from '@rollup/plugin-babel' +import glob from 'fast-glob' import {terser} from 'rollup-plugin-terser' import visualizer from 'rollup-plugin-visualizer' import packageJson from './package.json' +const input = new Set([ + // "exports" + // "." + 'src/index.ts', + + // "./drafts" + 'src/drafts/index.ts', + + // "./deprecated" + 'src/deprecated/index.ts', + + // "./lib-esm/*" + ...glob.sync(['src/*', 'src/*/index.js'], { + cwd: __dirname, + onlyFiles: true + }), + + // "./lib-esm/utils/test-helpers", "./lib/utils/test-helpers" + 'src/utils/test-helpers.tsx' +]) + const extensions = ['.js', '.jsx', '.ts', '.tsx'] const external = [ ...Object.keys(packageJson.peerDependencies), @@ -36,7 +58,7 @@ function isExternal(external) { } const baseConfig = { - input: ['src/index.ts', 'src/drafts/index.ts', 'src/deprecated/index.ts'], + input: Array.from(input), plugins: [ // Note: it's important that the babel plugin is ordered first for plugins // like babel-plugin-preval to work as-intended From e77dc506a3225d8300d4b2760ac48c9534a0bd81 Mon Sep 17 00:00:00 2001 From: Josh Black Date: Mon, 10 Oct 2022 13:05:49 -0500 Subject: [PATCH 02/12] chore: update input pattern --- rollup.config.js | 1 - 1 file changed, 1 deletion(-) diff --git a/rollup.config.js b/rollup.config.js index 24b044ecfc7..b84302abb3e 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -23,7 +23,6 @@ const input = new Set([ onlyFiles: true }), - // "./lib-esm/utils/test-helpers", "./lib/utils/test-helpers" 'src/utils/test-helpers.tsx' ]) From f0480dd6cadf63122f5c2693bc4721571cbfe2b4 Mon Sep 17 00:00:00 2001 From: Josh Black Date: Mon, 10 Oct 2022 14:31:37 -0500 Subject: [PATCH 03/12] chore: ignore theme-preval --- rollup.config.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rollup.config.js b/rollup.config.js index b84302abb3e..ebd5025ccdd 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -20,7 +20,10 @@ const input = new Set([ // "./lib-esm/*" ...glob.sync(['src/*', 'src/*/index.js'], { cwd: __dirname, - onlyFiles: true + onlyFiles: true, + // Note: ignore theme-preval as it is handle through the theme import and + // specifying it as an entrypoint creates an intermediate file + ignore: ['src/theme-preval.js'] }), 'src/utils/test-helpers.tsx' From 2c3709a437dd99b242ef3fc9f33d4453c8520681 Mon Sep 17 00:00:00 2001 From: Josh Black Date: Mon, 10 Oct 2022 14:34:57 -0500 Subject: [PATCH 04/12] chore: add changeset --- .changeset/plenty-eagles-refuse.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/plenty-eagles-refuse.md diff --git a/.changeset/plenty-eagles-refuse.md b/.changeset/plenty-eagles-refuse.md new file mode 100644 index 00000000000..5e906e2fb50 --- /dev/null +++ b/.changeset/plenty-eagles-refuse.md @@ -0,0 +1,5 @@ +--- +'@primer/react': patch +--- + +Refactor rollup to support all lib-esm/\* export patterns and include utils entrypoint From 28a9981e148973b7ac262172ee29b3935fc0a67a Mon Sep 17 00:00:00 2001 From: Josh Black Date: Mon, 10 Oct 2022 14:36:12 -0500 Subject: [PATCH 05/12] docs: update comments --- rollup.config.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rollup.config.js b/rollup.config.js index ebd5025ccdd..f65d4e9d1da 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -21,11 +21,12 @@ const input = new Set([ ...glob.sync(['src/*', 'src/*/index.js'], { cwd: __dirname, onlyFiles: true, - // Note: ignore theme-preval as it is handle through the theme import and + // Note: ignore theme-preval as it is handled through the theme import and // specifying it as an entrypoint creates an intermediate file ignore: ['src/theme-preval.js'] }), + // "./lib-esm/utils/test-helpers", "./lib/utils/test-helpers" 'src/utils/test-helpers.tsx' ]) From 8f92b5766181f45344d6b972812bb442ba5f253b Mon Sep 17 00:00:00 2001 From: Josh Black Date: Tue, 11 Oct 2022 09:52:24 -0500 Subject: [PATCH 06/12] Update rollup.config.js --- rollup.config.js | 9 --------- 1 file changed, 9 deletions(-) diff --git a/rollup.config.js b/rollup.config.js index f65d4e9d1da..ccdd20a8170 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -17,15 +17,6 @@ const input = new Set([ // "./deprecated" 'src/deprecated/index.ts', - // "./lib-esm/*" - ...glob.sync(['src/*', 'src/*/index.js'], { - cwd: __dirname, - onlyFiles: true, - // Note: ignore theme-preval as it is handled through the theme import and - // specifying it as an entrypoint creates an intermediate file - ignore: ['src/theme-preval.js'] - }), - // "./lib-esm/utils/test-helpers", "./lib/utils/test-helpers" 'src/utils/test-helpers.tsx' ]) From 7c6368ae0d6c5ab237a30545b6e0d4e36e2837e2 Mon Sep 17 00:00:00 2001 From: Josh Black Date: Tue, 11 Oct 2022 10:19:44 -0500 Subject: [PATCH 07/12] chore: remove fast-glob dep --- package-lock.json | 1 - package.json | 1 - rollup.config.js | 1 - 3 files changed, 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9117eba50b0..4a2b3aaf1f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -100,7 +100,6 @@ "eslint-plugin-primer-react": "0.7.4", "eslint-plugin-react": "7.24.0", "eslint-plugin-react-hooks": "4.2.0", - "fast-glob": "3.2.12", "front-matter": "4.0.2", "husky": "7.0.4", "jest": "29.0.1", diff --git a/package.json b/package.json index 10266634e76..36b79cec31f 100644 --- a/package.json +++ b/package.json @@ -171,7 +171,6 @@ "eslint-plugin-primer-react": "0.7.4", "eslint-plugin-react": "7.24.0", "eslint-plugin-react-hooks": "4.2.0", - "fast-glob": "3.2.12", "front-matter": "4.0.2", "husky": "7.0.4", "jest": "29.0.1", diff --git a/rollup.config.js b/rollup.config.js index ccdd20a8170..f5a4dcc2a68 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,7 +1,6 @@ import commonjs from '@rollup/plugin-commonjs' import resolve from '@rollup/plugin-node-resolve' import babel from '@rollup/plugin-babel' -import glob from 'fast-glob' import {terser} from 'rollup-plugin-terser' import visualizer from 'rollup-plugin-visualizer' import packageJson from './package.json' From f4ffad0614136f3845cedb38329b265be5cc4dc7 Mon Sep 17 00:00:00 2001 From: Josh Black Date: Tue, 11 Oct 2022 10:32:25 -0500 Subject: [PATCH 08/12] fix: add support for hooks, polyfills, and utils --- package-lock.json | 1 + package.json | 5 ++--- rollup.config.js | 18 ++++++++++++++++-- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4a2b3aaf1f3..9117eba50b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -100,6 +100,7 @@ "eslint-plugin-primer-react": "0.7.4", "eslint-plugin-react": "7.24.0", "eslint-plugin-react-hooks": "4.2.0", + "fast-glob": "3.2.12", "front-matter": "4.0.2", "husky": "7.0.4", "jest": "29.0.1", diff --git a/package.json b/package.json index 36b79cec31f..09d690a7371 100644 --- a/package.json +++ b/package.json @@ -26,9 +26,7 @@ "./lib/*.js", "./lib/*/index.js" ] - }, - "./lib-esm/utils/test-helpers": "./lib-esm/utils/test-helpers.js", - "./lib/utils/test-helpers": "./lib/utils/test-helpers.js" + } }, "typings": "lib/index.d.ts", "sideEffects": false, @@ -171,6 +169,7 @@ "eslint-plugin-primer-react": "0.7.4", "eslint-plugin-react": "7.24.0", "eslint-plugin-react-hooks": "4.2.0", + "fast-glob": "3.2.12", "front-matter": "4.0.2", "husky": "7.0.4", "jest": "29.0.1", diff --git a/rollup.config.js b/rollup.config.js index f5a4dcc2a68..a0c6462be62 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,6 +1,7 @@ import commonjs from '@rollup/plugin-commonjs' import resolve from '@rollup/plugin-node-resolve' import babel from '@rollup/plugin-babel' +import glob from 'fast-glob' import {terser} from 'rollup-plugin-terser' import visualizer from 'rollup-plugin-visualizer' import packageJson from './package.json' @@ -16,8 +17,21 @@ const input = new Set([ // "./deprecated" 'src/deprecated/index.ts', - // "./lib-esm/utils/test-helpers", "./lib/utils/test-helpers" - 'src/utils/test-helpers.tsx' + ...glob.sync( + [ + // "./lib-esm/hooks/*" + 'src/hooks/*', + + // "./lib-esm/polyfills/*" + 'src/polyfills/*', + + // "./lib-esm/utils/*" + 'src/utils/*' + ], + { + cwd: __dirname + } + ) ]) const extensions = ['.js', '.jsx', '.ts', '.tsx'] From 9105703cb181192b65126c4563b0f611f544e7ec Mon Sep 17 00:00:00 2001 From: Josh Black Date: Tue, 11 Oct 2022 10:35:19 -0500 Subject: [PATCH 09/12] chore: add ignore patterns --- rollup.config.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rollup.config.js b/rollup.config.js index a0c6462be62..71303aae81e 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -29,7 +29,8 @@ const input = new Set([ 'src/utils/*' ], { - cwd: __dirname + cwd: __dirname, + ignore: ['**/__tests__/**', '*.stories.tsx'] } ) ]) From c74a0b37bd73d0fe90c1d341a05a8ebff09a3652 Mon Sep 17 00:00:00 2001 From: Josh Black Date: Tue, 11 Oct 2022 10:50:29 -0500 Subject: [PATCH 10/12] fix: add constants so all members are exported --- rollup.config.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rollup.config.js b/rollup.config.js index 71303aae81e..5de47528673 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -17,6 +17,9 @@ const input = new Set([ // "./deprecated" 'src/deprecated/index.ts', + // Make sure all members are exported + 'src/constants.ts', + ...glob.sync( [ // "./lib-esm/hooks/*" From 6a6c2e67d4f1b68fdc5be9f2ffd9af293f7b0f68 Mon Sep 17 00:00:00 2001 From: Josh Black Date: Tue, 11 Oct 2022 12:41:43 -0500 Subject: [PATCH 11/12] fix: update rollup config to not process process.env.NODE_ENV outside of umd build --- package-lock.json | 78 +++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + rollup.config.js | 29 +++++++++++++++--- script/build | 2 +- 4 files changed, 104 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9117eba50b0..e029fd8fc10 100644 --- a/package-lock.json +++ b/package-lock.json @@ -47,6 +47,7 @@ "@rollup/plugin-babel": "5.3.1", "@rollup/plugin-commonjs": "22.0.2", "@rollup/plugin-node-resolve": "14.1.0", + "@rollup/plugin-replace": "5.0.0", "@rollup/plugin-typescript": "8.5.0", "@size-limit/preset-big-lib": "7.0.3", "@storybook/addon-a11y": "6.5.9", @@ -6475,6 +6476,52 @@ "rollup": "^2.78.0" } }, + "node_modules/@rollup/plugin-replace": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.0.tgz", + "integrity": "sha512-TiPmjMuBjQM+KLWK16O5TAM/eW4yXBYyQ17FbfeNzBC1t2kzX2aXoa8AlS9XTSmg6/2TNvkER1lMEEeN4Lhavw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^4.2.1", + "magic-string": "^0.26.4" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-replace/node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/@rollup/plugin-replace/node_modules/magic-string": { + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", + "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@rollup/plugin-typescript": { "version": "8.5.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.5.0.tgz", @@ -46177,6 +46224,37 @@ "resolve": "^1.19.0" } }, + "@rollup/plugin-replace": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.0.tgz", + "integrity": "sha512-TiPmjMuBjQM+KLWK16O5TAM/eW4yXBYyQ17FbfeNzBC1t2kzX2aXoa8AlS9XTSmg6/2TNvkER1lMEEeN4Lhavw==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^4.2.1", + "magic-string": "^0.26.4" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + } + }, + "magic-string": { + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", + "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + } + } + }, "@rollup/plugin-typescript": { "version": "8.5.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.5.0.tgz", diff --git a/package.json b/package.json index 09d690a7371..6f7a99c4263 100644 --- a/package.json +++ b/package.json @@ -116,6 +116,7 @@ "@rollup/plugin-babel": "5.3.1", "@rollup/plugin-commonjs": "22.0.2", "@rollup/plugin-node-resolve": "14.1.0", + "@rollup/plugin-replace": "5.0.0", "@rollup/plugin-typescript": "8.5.0", "@size-limit/preset-big-lib": "7.0.3", "@storybook/addon-a11y": "6.5.9", diff --git a/rollup.config.js b/rollup.config.js index 5de47528673..e50b52d1e4c 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,6 +1,7 @@ import commonjs from '@rollup/plugin-commonjs' import resolve from '@rollup/plugin-node-resolve' import babel from '@rollup/plugin-babel' +import replace from '@rollup/plugin-replace' import glob from 'fast-glob' import {terser} from 'rollup-plugin-terser' import visualizer from 'rollup-plugin-visualizer' @@ -33,16 +34,26 @@ const input = new Set([ ], { cwd: __dirname, - ignore: ['**/__tests__/**', '*.stories.tsx'] + ignore: [ + '**/__tests__/**', + '*.stories.tsx', + + // File currently imports from package.json + 'src/utils/test-deprecations.tsx', + + // Files use dependencies which are not listed by package + 'src/utils/testing.tsx', + 'src/utils/test-matchers.tsx' + ] } ) ]) const extensions = ['.js', '.jsx', '.ts', '.tsx'] const external = [ - ...Object.keys(packageJson.peerDependencies), - ...Object.keys(packageJson.dependencies), - ...Object.keys(packageJson.devDependencies) + ...Object.keys(packageJson.peerDependencies ?? {}), + ...Object.keys(packageJson.dependencies ?? {}), + ...Object.keys(packageJson.devDependencies ?? {}) ] function isExternal(external) { return id => { @@ -117,7 +128,15 @@ export default [ ...baseConfig, input: 'src/index.ts', external: ['styled-components', 'react', 'react-dom'], - plugins: [...baseConfig.plugins, terser(), visualizer({sourcemap: true})], + plugins: [ + replace({ + 'process.env.NODE_ENV': JSON.stringify('production'), + preventAssignment: true + }), + ...baseConfig.plugins, + terser(), + visualizer({sourcemap: true}) + ], output: ['esm', 'umd'].map(format => ({ file: `dist/browser.${format}.js`, format, diff --git a/script/build b/script/build index 8adcd4aa10e..eabd8e7a692 100755 --- a/script/build +++ b/script/build @@ -6,7 +6,7 @@ set -e npm run clean # Bundle -npx cross-env NODE_ENV=production rollup -c +npx rollup -c # Type check npx tsc --project tsconfig.build.json From 0095409cb143fda36b8efcb19ea6abc1f4edb2f4 Mon Sep 17 00:00:00 2001 From: Josh Black Date: Tue, 11 Oct 2022 13:11:21 -0500 Subject: [PATCH 12/12] refactor(rollup): inline babel config to prevent commonjs transform from running --- rollup.config.js | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/rollup.config.js b/rollup.config.js index e50b52d1e4c..73a2dcb8d51 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -88,7 +88,33 @@ const baseConfig = { extensions, exclude: /node_modules/, babelHelpers: 'inline', - babelrc: false + babelrc: false, + configFile: false, + presets: [ + '@babel/preset-typescript', + [ + '@babel/preset-react', + { + modules: false + } + ] + ], + plugins: [ + 'macros', + 'preval', + 'add-react-displayname', + 'babel-plugin-styled-components', + '@babel/plugin-proposal-nullish-coalescing-operator', + '@babel/plugin-proposal-optional-chaining', + [ + 'babel-plugin-transform-replace-expressions', + { + replace: { + __DEV__: "process.env.NODE_ENV !== 'production'" + } + } + ] + ] }), commonjs(), resolve({