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", ] `; 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 b454f8aa5a3a3..69548ac074f7a 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" diff --git a/packages/babel-preset-gatsby/src/__tests__/index.js b/packages/babel-preset-gatsby/src/__tests__/index.js index 49e30eb49957b..bd6cbed81ad68 100644 --- a/packages/babel-preset-gatsby/src/__tests__/index.js +++ b/packages/babel-preset-gatsby/src/__tests__/index.js @@ -56,6 +56,7 @@ it(`Specifies proper presets and plugins for test stage`, () => { loose: false, }, ], + expect.stringContaining(`babel-plugin-dynamic-import-node`), ]) }) @@ -123,6 +124,7 @@ it(`Specifies proper presets and plugins for build-html stage`, () => { loose: false, }, ], + 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 08c49e0b0016e..1e5ec4446049c 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.BABEL_ENV || 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(), @@ -91,6 +93,7 @@ module.exports = function preset(_, options = {}) { loose: false, // Fixes #14848 }, ], - ], + IS_TEST && resolve(`babel-plugin-dynamic-import-node`), + ].filter(Boolean), } }