From 5851a085a243bdf8891e99a3698602a4dc46bb44 Mon Sep 17 00:00:00 2001 From: Sidhartha Chatterjee Date: Fri, 12 Jul 2019 17:52:19 +0530 Subject: [PATCH 1/4] Add babel-plugin-dynamic-import-node for tests --- jest-transformer.js | 5 ++++- packages/babel-preset-gatsby/package.json | 1 + packages/babel-preset-gatsby/src/__tests__/index.js | 2 ++ packages/babel-preset-gatsby/src/index.js | 7 +++++-- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/jest-transformer.js b/jest-transformer.js index 072aba2e1ecc4..0532d3176f793 100644 --- a/jest-transformer.js +++ b/jest-transformer.js @@ -1,2 +1,5 @@ const babelPreset = require(`babel-preset-gatsby-package`)() -module.exports = require(`babel-jest`).createTransformer(babelPreset) +module.exports = require(`babel-jest`).createTransformer({ + ...babelPreset, + plugins: [...babelPreset.plugins, `babel-plugin-dynamic-import-node`], +}) diff --git a/packages/babel-preset-gatsby/package.json b/packages/babel-preset-gatsby/package.json index a579200ba41b6..441d569a31d14 100644 --- a/packages/babel-preset-gatsby/package.json +++ b/packages/babel-preset-gatsby/package.json @@ -29,6 +29,7 @@ }, "devDependencies": { "@babel/cli": "^7.0.0", + "babel-plugin-dynamic-import-node": "^1.2.0", "babel-preset-gatsby-package": "^0.2.1", "cross-env": "^5.1.4" }, diff --git a/packages/babel-preset-gatsby/src/__tests__/index.js b/packages/babel-preset-gatsby/src/__tests__/index.js index 6979dcfd02a1a..e1a27d493a5c2 100644 --- a/packages/babel-preset-gatsby/src/__tests__/index.js +++ b/packages/babel-preset-gatsby/src/__tests__/index.js @@ -50,6 +50,7 @@ it(`Specifies proper presets and plugins for test stage`, () => { useESModules: false, }, ], + expect.stringContaining(`babel-plugin-dynamic-import-node`), ]) }) @@ -111,6 +112,7 @@ it(`Specifies proper presets and plugins for build-html stage`, () => { useESModules: true, }, ], + expect.stringContaining(`babel-plugin-dynamic-import-node`), ]) }) diff --git a/packages/babel-preset-gatsby/src/index.js b/packages/babel-preset-gatsby/src/index.js index 297dba0c9039d..fbbce9a268fcf 100644 --- a/packages/babel-preset-gatsby/src/index.js +++ b/packages/babel-preset-gatsby/src/index.js @@ -2,9 +2,11 @@ const path = require(`path`) const resolve = m => require.resolve(m) +const IS_TEST = process.env.NODE_ENV === `test` + const loadCachedConfig = () => { let pluginBabelConfig = {} - if (process.env.NODE_ENV !== `test`) { + if (!IS_TEST) { try { pluginBabelConfig = require(path.join( process.cwd(), @@ -85,6 +87,7 @@ module.exports = function preset(_, options = {}) { absoluteRuntimePath, }, ], - ], + IS_TEST && resolve(`babel-plugin-dynamic-import-node`), + ].filter(Boolean), } } From 4c275e47c9cbb60fa93b76c2ec9f84acfb78e726 Mon Sep 17 00:00:00 2001 From: Sidhartha Chatterjee Date: Fri, 12 Jul 2019 18:02:30 +0530 Subject: [PATCH 2/4] Add babel-plugin-dynamic-import-node to babel-preset-gatsby-package --- jest-transformer.js | 5 +---- packages/babel-preset-gatsby-package/index.js | 12 +++++++----- packages/babel-preset-gatsby-package/package.json | 3 ++- packages/babel-preset-gatsby/package.json | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/jest-transformer.js b/jest-transformer.js index 0532d3176f793..072aba2e1ecc4 100644 --- a/jest-transformer.js +++ b/jest-transformer.js @@ -1,5 +1,2 @@ const babelPreset = require(`babel-preset-gatsby-package`)() -module.exports = require(`babel-jest`).createTransformer({ - ...babelPreset, - plugins: [...babelPreset.plugins, `babel-plugin-dynamic-import-node`], -}) +module.exports = require(`babel-jest`).createTransformer(babelPreset) diff --git a/packages/babel-preset-gatsby-package/index.js b/packages/babel-preset-gatsby-package/index.js index 9dc3ca5f47f92..592c8b61f894d 100644 --- a/packages/babel-preset-gatsby-package/index.js +++ b/packages/babel-preset-gatsby-package/index.js @@ -4,12 +4,13 @@ function preset(context, options = {}) { const { browser = false, debug = false, nodeVersion = `8.0` } = options const { NODE_ENV, BABEL_ENV } = process.env - const PRODUCTION = (BABEL_ENV || NODE_ENV) === `production` + const IS_PRODUCTION = (BABEL_ENV || NODE_ENV) === `production` + const IS_TEST = (BABEL_ENV || NODE_ENV) === `test` const browserConfig = { useBuiltIns: false, targets: { - browsers: PRODUCTION + browsers: IS_PRODUCTION ? [`last 4 versions`, `safari >= 7`, `ie >= 9`] : [`last 2 versions`, `not ie <= 11`, `not android 4.4.3`], }, @@ -17,7 +18,7 @@ function preset(context, options = {}) { const nodeConfig = { targets: { - node: PRODUCTION ? nodeVersion : `current`, + node: IS_PRODUCTION ? nodeVersion : `current`, }, } @@ -36,7 +37,7 @@ function preset(context, options = {}) { browser ? browserConfig : nodeConfig ), ], - [r(`@babel/preset-react`), { development: !PRODUCTION }], + [r(`@babel/preset-react`), { development: !IS_PRODUCTION }], r(`@babel/preset-flow`), ], plugins: [ @@ -44,7 +45,8 @@ function preset(context, options = {}) { r(`@babel/plugin-proposal-optional-chaining`), r(`@babel/plugin-transform-runtime`), r(`@babel/plugin-syntax-dynamic-import`), - ], + IS_TEST && r(`babel-plugin-dynamic-import-node`) + ].filter(Boolean), } } diff --git a/packages/babel-preset-gatsby-package/package.json b/packages/babel-preset-gatsby-package/package.json index 32411511cbcff..5508008002379 100644 --- a/packages/babel-preset-gatsby-package/package.json +++ b/packages/babel-preset-gatsby-package/package.json @@ -15,7 +15,8 @@ "@babel/plugin-transform-runtime": "^7.0.0", "@babel/preset-env": "^7.0.0", "@babel/preset-flow": "^7.0.0", - "@babel/preset-react": "^7.0.0" + "@babel/preset-react": "^7.0.0", + "babel-plugin-dynamic-import-node": "^1.2.0" }, "license": "MIT", "main": "index.js", diff --git a/packages/babel-preset-gatsby/package.json b/packages/babel-preset-gatsby/package.json index 441d569a31d14..438bbfefbdd6b 100644 --- a/packages/babel-preset-gatsby/package.json +++ b/packages/babel-preset-gatsby/package.json @@ -15,7 +15,8 @@ "@babel/preset-env": "^7.4.1", "@babel/preset-react": "^7.0.0", "@babel/runtime": "^7.4.5", - "babel-plugin-macros": "^2.4.2" + "babel-plugin-macros": "^2.4.2", + "babel-plugin-dynamic-import-node": "^1.2.0" }, "peerDependencies": { "@babel/core": "^7.0.0" @@ -29,7 +30,6 @@ }, "devDependencies": { "@babel/cli": "^7.0.0", - "babel-plugin-dynamic-import-node": "^1.2.0", "babel-preset-gatsby-package": "^0.2.1", "cross-env": "^5.1.4" }, From 68cd22f367bfea2be1fbfff2d772aa49d2352611 Mon Sep 17 00:00:00 2001 From: Sidhartha Chatterjee Date: Fri, 12 Jul 2019 18:08:28 +0530 Subject: [PATCH 3/4] Update snapshots --- .../__tests__/__snapshots__/index.js.snap | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/babel-preset-gatsby-package/__tests__/__snapshots__/index.js.snap b/packages/babel-preset-gatsby-package/__tests__/__snapshots__/index.js.snap index e909df682e5b4..d546069579f40 100644 --- a/packages/babel-preset-gatsby-package/__tests__/__snapshots__/index.js.snap +++ b/packages/babel-preset-gatsby-package/__tests__/__snapshots__/index.js.snap @@ -64,6 +64,7 @@ Array [ "@babel/plugin-proposal-optional-chaining", "@babel/plugin-transform-runtime", "@babel/plugin-syntax-dynamic-import", + "babel-plugin-dynamic-import-node", ] `; @@ -123,6 +124,7 @@ Array [ "@babel/plugin-proposal-optional-chaining", "@babel/plugin-transform-runtime", "@babel/plugin-syntax-dynamic-import", + "babel-plugin-dynamic-import-node", ] `; From 3af698fe6782b9b8be1b34dd717edc79b77cb499 Mon Sep 17 00:00:00 2001 From: Sidhartha Chatterjee Date: Fri, 12 Jul 2019 18:18:09 +0530 Subject: [PATCH 4/4] Consider BABEL_ENV as well --- packages/babel-preset-gatsby/src/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/babel-preset-gatsby/src/index.js b/packages/babel-preset-gatsby/src/index.js index fbbce9a268fcf..f04732f43bc10 100644 --- a/packages/babel-preset-gatsby/src/index.js +++ b/packages/babel-preset-gatsby/src/index.js @@ -2,7 +2,7 @@ const path = require(`path`) const resolve = m => require.resolve(m) -const IS_TEST = process.env.NODE_ENV === `test` +const IS_TEST = (process.env.BABEL_ENV || process.env.NODE_ENV) === `test` const loadCachedConfig = () => { let pluginBabelConfig = {}