diff --git a/.babelrc.js b/.babelrc.js index 666c1a0efb70a..4eb42997a778d 100644 --- a/.babelrc.js +++ b/.babelrc.js @@ -6,10 +6,8 @@ if (process.env.NODE_ENV !== `test`) { ignore.push(`**/__tests__`) } -const presetAbsPath = require(`path`).join(__dirname, '.babel-preset.js') - module.exports = { sourceMaps: true, - presets: [presetAbsPath], + presets: ["babel-preset-gatsby-package"], ignore, } diff --git a/docs/docs/babel.md b/docs/docs/babel.md index 422101fff18f1..de043dab5d5c2 100644 --- a/docs/docs/babel.md +++ b/docs/docs/babel.md @@ -22,48 +22,25 @@ browsers. ## How to use a custom .babelrc file Gatsby ships with a default .babelrc setup that should work for most sites. If you'd like -to add custom Babel presets or plugins, we recommend copying our default .babelrc below -to the root of your site and modifying it per your needs. +to add custom Babel presets or plugins, you can create your own `.babelrc` at the root of your site, import [`babel-preset-gatsby`](https://github.com/gatsbyjs/gatsby/tree/master/packages/babel-preset-gatsby), and overwrite the `target` option. + +```bash +npm install --save babel-preset-gatsby +``` ```json5:title=.babelrc { presets: [ [ - "@babel/preset-env", + "babel-preset-gatsby", { - loose: true, - modules: false, - useBuiltIns: "usage", - shippedProposals: true, targets: { browsers: [">0.25%", "not dead"], }, }, ], - [ - "@babel/preset-react", - { - useBuiltIns: true, - pragma: "React.createElement", - }, - ], - ], - plugins: [ - [ - "@babel/plugin-proposal-class-properties", - { - loose: true, - }, - ], - "@babel/plugin-syntax-dynamic-import", - "babel-plugin-macros", - [ - "@babel/plugin-transform-runtime", - { - helpers: true, - regenerator: true, - }, - ], ], } ``` + +For more advanced configurations, you can also copy the defaults from [`babel-preset-gatsby`](https://github.com/gatsbyjs/gatsby/tree/master/packages/babel-preset-gatsby) and customize them to suit your needs. diff --git a/docs/docs/testing-css-in-js.md b/docs/docs/testing-css-in-js.md index 5894105407a15..0901e7c95e4ba 100644 --- a/docs/docs/testing-css-in-js.md +++ b/docs/docs/testing-css-in-js.md @@ -22,12 +22,10 @@ If you followed along with the [Unit testing guide](/docs/unit-testing) you'll h ```diff:title=jest-preprocess.js const babelOptions = { - presets: ["@babel/react", "@babel/env"], - plugins: [ + presets: ["babel-preset-gatsby"], ++ plugins: [ + "emotion", - "@babel/plugin-proposal-optional-chaining", - "@babel/plugin-proposal-class-properties", - ], ++ ], } module.exports = require("babel-jest").createTransformer(babelOptions) diff --git a/docs/docs/unit-testing.md b/docs/docs/unit-testing.md index a81df3dd403a8..143d68aa505ef 100644 --- a/docs/docs/unit-testing.md +++ b/docs/docs/unit-testing.md @@ -22,7 +22,7 @@ First you need to install Jest and some more required packages. You need to install Babel 7 as it's required by Jest. ```sh -npm install --save-dev jest babel-jest react-test-renderer identity-obj-proxy 'babel-core@^7.0.0-0' @babel/core @babel/preset-env @babel/preset-react @babel/plugin-proposal-class-properties @babel/plugin-proposal-optional-chaining +npm install --save-dev jest babel-jest react-test-renderer identity-obj-proxy 'babel-core@^7.0.0-0' @babel/core babel-preset-gatsby ``` Because Gatsby handles its own Babel configuration, you will need to manually @@ -61,11 +61,7 @@ with a minimal config. ```js:title=jest-preprocess.js const babelOptions = { - presets: ["@babel/react", "@babel/env"], - plugins: [ - "@babel/plugin-proposal-optional-chaining", - "@babel/plugin-proposal-class-properties", - ], + presets: ["babel-preset-gatsby"], } module.exports = require("babel-jest").createTransformer(babelOptions) diff --git a/jest-transformer.js b/jest-transformer.js index 9db14942ed204..072aba2e1ecc4 100644 --- a/jest-transformer.js +++ b/jest-transformer.js @@ -1,3 +1,2 @@ -const presetAbsPath = require(`path`).join(__dirname, `.babel-preset.js`) -const babelPreset = require(presetAbsPath)() +const babelPreset = require(`babel-preset-gatsby-package`)() module.exports = require(`babel-jest`).createTransformer(babelPreset) diff --git a/package.json b/package.json index b2a6a52762463..4e859e90b1aae 100644 --- a/package.json +++ b/package.json @@ -2,12 +2,6 @@ "devDependencies": { "@babel/core": "^7.0.0", "@babel/node": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.0.0", - "@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/runtime": "^7.0.0", "babel-core": "7.0.0-bridge.0", "babel-eslint": "8.2.1", diff --git a/packages/babel-plugin-remove-graphql-queries/.babelrc b/packages/babel-plugin-remove-graphql-queries/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/babel-plugin-remove-graphql-queries/.babelrc +++ b/packages/babel-plugin-remove-graphql-queries/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/babel-preset-gatsby-package/.gitignore b/packages/babel-preset-gatsby-package/.gitignore new file mode 100644 index 0000000000000..2132b55e6405e --- /dev/null +++ b/packages/babel-preset-gatsby-package/.gitignore @@ -0,0 +1,2 @@ +/*.js +yarn.lock diff --git a/packages/babel-preset-gatsby-package/.npmignore b/packages/babel-preset-gatsby-package/.npmignore new file mode 100644 index 0000000000000..e771d2c9fa299 --- /dev/null +++ b/packages/babel-preset-gatsby-package/.npmignore @@ -0,0 +1,34 @@ +# Logs +logs +*.log + +# Runtime data +pids +*.pid +*.seed + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directory +# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git +node_modules +*.un~ +yarn.lock +src +flow-typed +coverage +decls +examples diff --git a/packages/babel-preset-gatsby-package/README.md b/packages/babel-preset-gatsby-package/README.md new file mode 100644 index 0000000000000..2c0de3cc36638 --- /dev/null +++ b/packages/babel-preset-gatsby-package/README.md @@ -0,0 +1,40 @@ +# babel-preset-gatsby-package + +This [Babel](https://babeljs.io/) preset is used for our internal packages. If you're looking for the preset a **Gatsby Site** can use, please refer to [babel-preset-gatsby](https://github.com/gatsbyjs/gatsby/blob/master/packages/babel-preset-gatsby/README.md) instead. + +## Packages + +- [`@babel/preset-env`](https://babeljs.io/docs/en/babel-preset-env) +- [`@babel/preset-react`](https://babeljs.io/docs/en/babel-preset-react) +- [`@babel/preset-flow`](https://babeljs.io/docs/en/babel-preset-flow) +- [`@babel/plugin-proposal-class-properties`](https://babeljs.io/docs/en/babel-plugin-proposal-class-properties) +- [`@babel/plugin-proposal-optional-chaining`](https://babeljs.io/docs/en/babel-plugin-proposal-optional-chaining) +- [`@babel/plugin-transform-runtime`](https://babeljs.io/docs/en/babel-plugin-transform-runtime#docsNav) + +## Usage + +Install `babel-preset-gatsby-package` and add a `.babelrc` file with the following content to the root of your project: + +```bash +npm install --dev babel-preset-gatsby-package +``` + +```json +{ + "presets": ["babel-preset-gatsby-package"] +} +``` + +## Options + +### `browser` + +`boolean`, defaults to `false`. + +Defines if [`@babel/preset-env`](https://babeljs.io/docs/en/babel-preset-env) is configured to target browsers or Node.js environments. + +### `debug` + +`boolean`, defaults to `false`. + +Outputs the targets/plugins used and the version specified in [plugin data version](https://github.com/babel/babel/blob/master/packages/babel-preset-env/data/plugins.json) to `console.log`. diff --git a/packages/babel-preset-gatsby-package/package.json b/packages/babel-preset-gatsby-package/package.json new file mode 100644 index 0000000000000..99f0de59ed992 --- /dev/null +++ b/packages/babel-preset-gatsby-package/package.json @@ -0,0 +1,15 @@ +{ + "name": "babel-preset-gatsby-package", + "version": "0.1.0", + "author": "Philipp Spiess ", + "dependencies": { + "@babel/preset-env": "^7.0.0", + "@babel/preset-flow": "^7.0.0", + "@babel/preset-react": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0" + }, + "license": "MIT", + "main": "src/index.js" +} diff --git a/packages/babel-preset-gatsby-package/src/__tests__/index.js b/packages/babel-preset-gatsby-package/src/__tests__/index.js new file mode 100644 index 0000000000000..85383b585352a --- /dev/null +++ b/packages/babel-preset-gatsby-package/src/__tests__/index.js @@ -0,0 +1,138 @@ +const preset = require(`../`) +const path = require(`path`) + +it(`Specifies proper presets and plugins in Node mode`, () => { + const { presets, plugins } = preset() + + expect(presets).toEqual([ + [ + expect.stringContaining(path.join(`@babel`, `preset-env`)), + { + debug: false, + loose: true, + modules: `commonjs`, + shippedProposals: true, + targets: { + node: `current`, + }, + useBuiltIns: `entry`, + }, + ], + [ + expect.stringContaining(path.join(`@babel`, `preset-react`)), + { development: true }, + ], + expect.stringContaining(path.join(`@babel`, `preset-flow`)), + ]) + expect(plugins).toEqual([ + expect.stringContaining( + path.join(`@babel`, `plugin-proposal-class-properties`) + ), + expect.stringContaining( + path.join(`@babel`, `plugin-proposal-optional-chaining`) + ), + expect.stringContaining(path.join(`@babel`, `plugin-transform-runtime`)), + ]) +}) + +it(`Specifies proper presets and plugins in debug Node mode`, () => { + const { presets, plugins } = preset(null, { debug: true }) + + expect(presets).toEqual([ + [ + expect.stringContaining(path.join(`@babel`, `preset-env`)), + { + debug: true, + loose: true, + modules: `commonjs`, + shippedProposals: true, + targets: { + node: `current`, + }, + useBuiltIns: `entry`, + }, + ], + [ + expect.stringContaining(path.join(`@babel`, `preset-react`)), + { development: true }, + ], + expect.stringContaining(path.join(`@babel`, `preset-flow`)), + ]) + expect(plugins).toEqual([ + expect.stringContaining( + path.join(`@babel`, `plugin-proposal-class-properties`) + ), + expect.stringContaining( + path.join(`@babel`, `plugin-proposal-optional-chaining`) + ), + expect.stringContaining(path.join(`@babel`, `plugin-transform-runtime`)), + ]) +}) + +it(`Specifies proper presets and plugins in browser mode`, () => { + const { presets, plugins } = preset(null, { browser: true }) + + expect(presets).toEqual([ + [ + expect.stringContaining(path.join(`@babel`, `preset-env`)), + { + debug: false, + loose: true, + modules: `commonjs`, + shippedProposals: true, + targets: { + browsers: [`last 2 versions`, `not ie <= 11`, `not android 4.4.3`], + }, + useBuiltIns: false, + }, + ], + [ + expect.stringContaining(path.join(`@babel`, `preset-react`)), + { development: true }, + ], + expect.stringContaining(path.join(`@babel`, `preset-flow`)), + ]) + expect(plugins).toEqual([ + expect.stringContaining( + path.join(`@babel`, `plugin-proposal-class-properties`) + ), + expect.stringContaining( + path.join(`@babel`, `plugin-proposal-optional-chaining`) + ), + expect.stringContaining(path.join(`@babel`, `plugin-transform-runtime`)), + ]) +}) + +it(`Specifies proper presets and plugins in debug browser mode`, () => { + const { presets, plugins } = preset(null, { browser: true, debug: true }) + + expect(presets).toEqual([ + [ + expect.stringContaining(path.join(`@babel`, `preset-env`)), + { + debug: true, + loose: true, + modules: `commonjs`, + shippedProposals: true, + targets: { + browsers: [`last 2 versions`, `not ie <= 11`, `not android 4.4.3`], + }, + useBuiltIns: false, + }, + ], + [ + expect.stringContaining(path.join(`@babel`, `preset-react`)), + { development: true }, + ], + expect.stringContaining(path.join(`@babel`, `preset-flow`)), + ]) + expect(plugins).toEqual([ + expect.stringContaining( + path.join(`@babel`, `plugin-proposal-class-properties`) + ), + expect.stringContaining( + path.join(`@babel`, `plugin-proposal-optional-chaining`) + ), + expect.stringContaining(path.join(`@babel`, `plugin-transform-runtime`)), + ]) +}) diff --git a/.babel-preset.js b/packages/babel-preset-gatsby-package/src/index.js similarity index 58% rename from .babel-preset.js rename to packages/babel-preset-gatsby-package/src/index.js index 5dd3ad55e929e..e99090ca18cf5 100644 --- a/.babel-preset.js +++ b/packages/babel-preset-gatsby-package/src/index.js @@ -4,45 +4,45 @@ function preset(context, options = {}) { const { browser = false, debug = false } = options const { NODE_ENV, BABEL_ENV } = process.env - const PRODUCTION = (BABEL_ENV || NODE_ENV) === "production" + const PRODUCTION = (BABEL_ENV || NODE_ENV) === `production` const browserConfig = { useBuiltIns: false, targets: { browsers: PRODUCTION - ? [`last 4 versions`, `safari >= 7`, "ie >= 9"] + ? [`last 4 versions`, `safari >= 7`, `ie >= 9`] : [`last 2 versions`, `not ie <= 11`, `not android 4.4.3`], }, } const nodeConfig = { targets: { - node: PRODUCTION ? 6.0 : "current", + node: PRODUCTION ? 6.0 : `current`, }, } return { presets: [ [ - r("@babel/preset-env"), + r(`@babel/preset-env`), Object.assign( { loose: true, debug: !!debug, - useBuiltIns: "entry", + useBuiltIns: `entry`, shippedProposals: true, - modules: "commonjs", + modules: `commonjs`, }, browser ? browserConfig : nodeConfig ), ], - [r("@babel/preset-react"), { development: !PRODUCTION }], - r("@babel/preset-flow"), + [r(`@babel/preset-react`), { development: !PRODUCTION }], + r(`@babel/preset-flow`), ], plugins: [ - r("@babel/plugin-proposal-class-properties"), - r("@babel/plugin-proposal-optional-chaining"), - r("@babel/plugin-transform-runtime"), + r(`@babel/plugin-proposal-class-properties`), + r(`@babel/plugin-proposal-optional-chaining`), + r(`@babel/plugin-transform-runtime`), ], } } diff --git a/packages/babel-preset-gatsby/.babelrc b/packages/babel-preset-gatsby/.babelrc new file mode 100644 index 0000000000000..837b17615376b --- /dev/null +++ b/packages/babel-preset-gatsby/.babelrc @@ -0,0 +1,6 @@ +{ + "presets": [ + ["babel-preset-gatsby-package"] + ] +} + diff --git a/packages/babel-preset-gatsby/.gitignore b/packages/babel-preset-gatsby/.gitignore new file mode 100644 index 0000000000000..2132b55e6405e --- /dev/null +++ b/packages/babel-preset-gatsby/.gitignore @@ -0,0 +1,2 @@ +/*.js +yarn.lock diff --git a/packages/babel-preset-gatsby/.npmignore b/packages/babel-preset-gatsby/.npmignore new file mode 100644 index 0000000000000..e771d2c9fa299 --- /dev/null +++ b/packages/babel-preset-gatsby/.npmignore @@ -0,0 +1,34 @@ +# Logs +logs +*.log + +# Runtime data +pids +*.pid +*.seed + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directory +# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git +node_modules +*.un~ +yarn.lock +src +flow-typed +coverage +decls +examples diff --git a/packages/babel-preset-gatsby/README.md b/packages/babel-preset-gatsby/README.md new file mode 100644 index 0000000000000..3ae2a068c33e7 --- /dev/null +++ b/packages/babel-preset-gatsby/README.md @@ -0,0 +1,36 @@ +# babel-preset-gatsby + +Gatsby uses the phenomenal project [Babel](https://babeljs.io/) to enable support for writing modern JavaScript — while still supporting older browsers. This package contains the default Babel setup for all Gatsby projects. + +For more information on how to customize the Babel configuration of your Gatsby site, check out [our documentation](https://www.gatsbyjs.org/docs/babel/). + +## Packages + +- [`@babel/preset-env`](https://babeljs.io/docs/en/babel-preset-env) +- [`@babel/preset-react`](https://babeljs.io/docs/en/babel-preset-react) +- [`@babel/plugin-proposal-class-properties`](https://babeljs.io/docs/en/babel-plugin-proposal-class-properties) +- [`babel-plugin-macros`](https://github.com/kentcdodds/babel-plugin-macros) +- [`@babel/plugin-proposal-optional-chaining`](https://babeljs.io/docs/en/babel-plugin-proposal-optional-chaining) +- [`@babel/plugin-transform-runtime`](https://babeljs.io/docs/en/babel-plugin-transform-runtime#docsNav) + +## Usage + +Install `babel-preset-gatsby` and add a `.babelrc` file with the following content to the root of your project: + +```bash +npm install --dev babel-preset-gatsby +``` + +```json +{ + "presets": ["babel-preset-gatsby"] +} +``` + +## Options + +### `targets` + +`{ [string]: number | string }`, defaults to `{ "browsers": ["last 4 versions", "safari >= 7", "ie >= 9"] }` in production and `{ "browsers": ["last 2 versions", "not ie <= 11", "not android 4.4.3"] }` in development when targeting the browser and `{ "node": 6 }` in production and `{ "node": "current" }` in development when targeting Node.js. + +Use this option to configure [custom target browsers](https://www.gatsbyjs.org/docs/babel/). diff --git a/packages/babel-preset-gatsby/package.json b/packages/babel-preset-gatsby/package.json new file mode 100644 index 0000000000000..4c424473d440a --- /dev/null +++ b/packages/babel-preset-gatsby/package.json @@ -0,0 +1,20 @@ +{ + "name": "babel-preset-gatsby", + "version": "0.1.0", + "author": "Philipp Spiess ", + "dependencies": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0", + "@babel/preset-env": "^7.0.0", + "@babel/preset-react": "^7.0.0", + "babel-plugin-macros": "^2.4.2" + }, + "license": "MIT", + "main": "index.js", + "scripts": { + "build": "babel src --out-dir . --ignore **/__tests__", + "prepare": "cross-env NODE_ENV=production npm run build", + "watch": "babel -w src --out-dir . --ignore **/__tests__" + } +} diff --git a/packages/babel-preset-gatsby/src/__tests__/index.js b/packages/babel-preset-gatsby/src/__tests__/index.js new file mode 100644 index 0000000000000..e4725eb6780e5 --- /dev/null +++ b/packages/babel-preset-gatsby/src/__tests__/index.js @@ -0,0 +1,119 @@ +const preset = require(`../`) +const path = require(`path`) + +it(`Specifies proper presets and plugins for test stage`, () => { + const { presets, plugins } = preset() + + expect(presets).toEqual([ + [ + expect.stringContaining(path.join(`@babel`, `preset-env`)), + { + loose: true, + modules: false, + useBuiltIns: `usage`, + targets: { + browsers: undefined, + }, + }, + ], + [ + expect.stringContaining(path.join(`@babel`, `preset-react`)), + { + development: false, + pragma: `React.createElement`, + useBuiltIns: true, + }, + ], + ]) + expect(plugins).toEqual([ + [ + expect.stringContaining( + path.join(`@babel`, `plugin-proposal-class-properties`) + ), + { loose: true }, + ], + expect.stringContaining(`babel-plugin-macros`), + expect.stringContaining( + path.join(`@babel`, `plugin-syntax-dynamic-import`) + ), + [ + expect.stringContaining(path.join(`@babel`, `plugin-transform-runtime`)), + { + helpers: true, + regenerator: true, + }, + ], + ]) +}) + +it(`Specifies proper presets and plugins for build-html stage`, () => { + const currentGatsbyBuildStage = process.env.GATSBY_BUILD_STAGE + let presets, plugins + try { + process.env.GATSBY_BUILD_STAGE = `build-html` + const config = preset() + presets = config.presets + plugins = config.plugins + } finally { + process.env.GATSBY_BUILD_STAGE = currentGatsbyBuildStage + } + + expect(presets).toEqual([ + [ + expect.stringContaining(path.join(`@babel`, `preset-env`)), + { + loose: true, + modules: false, + useBuiltIns: `usage`, + targets: { + node: `current`, + }, + }, + ], + [ + expect.stringContaining(path.join(`@babel`, `preset-react`)), + { + development: false, + pragma: `React.createElement`, + useBuiltIns: true, + }, + ], + ]) + expect(plugins).toEqual([ + [ + expect.stringContaining( + path.join(`@babel`, `plugin-proposal-class-properties`) + ), + { loose: true }, + ], + expect.stringContaining(`babel-plugin-macros`), + expect.stringContaining( + path.join(`@babel`, `plugin-syntax-dynamic-import`) + ), + [ + expect.stringContaining(path.join(`@babel`, `plugin-transform-runtime`)), + { + helpers: true, + regenerator: true, + }, + ], + ]) +}) + +it(`Allows to configure browser targets`, () => { + const { presets } = preset(null, { + targets: { browsers: [`last 1 version`] }, + }) + + expect(presets[0]).toEqual([ + expect.stringContaining(path.join(`@babel`, `preset-env`)), + { + loose: true, + modules: false, + useBuiltIns: `usage`, + targets: { + browsers: [`last 1 version`], + }, + }, + ]) +}) diff --git a/packages/babel-preset-gatsby/src/index.js b/packages/babel-preset-gatsby/src/index.js new file mode 100644 index 0000000000000..1a195553df52a --- /dev/null +++ b/packages/babel-preset-gatsby/src/index.js @@ -0,0 +1,74 @@ +const path = require(`path`) + +const r = m => require.resolve(m) + +const loadCachedConfig = () => { + let pluginBabelConfig = {} + if (process.env.NODE_ENV !== `test`) { + pluginBabelConfig = require(path.join( + process.cwd(), + `./.cache/babelState.json` + )) + } + return pluginBabelConfig +} + +function preset(context, options = {}) { + let { targets = null } = options + + const pluginBabelConfig = loadCachedConfig() + const stage = process.env.GATSBY_BUILD_STAGE || `test` + + if (!targets) { + if (stage === `build-html`) { + targets = { + node: `current`, + } + } else { + targets = { + browsers: pluginBabelConfig.browserslist, + } + } + } + + return { + presets: [ + [ + r(`@babel/preset-env`), + { + loose: true, + modules: false, + useBuiltIns: `usage`, + targets, + }, + ], + [ + r(`@babel/preset-react`), + { + useBuiltIns: true, + pragma: `React.createElement`, + development: stage === `develop`, + }, + ], + ], + plugins: [ + [ + r(`@babel/plugin-proposal-class-properties`), + { + loose: true, + }, + ], + r(`babel-plugin-macros`), + r(`@babel/plugin-syntax-dynamic-import`), + [ + r(`@babel/plugin-transform-runtime`), + { + helpers: true, + regenerator: true, + }, + ], + ], + } +} + +module.exports = preset diff --git a/packages/gatsby-cli/.babelrc b/packages/gatsby-cli/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-cli/.babelrc +++ b/packages/gatsby-cli/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-codemods/.babelrc b/packages/gatsby-codemods/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-codemods/.babelrc +++ b/packages/gatsby-codemods/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-dev-cli/.babelrc b/packages/gatsby-dev-cli/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-dev-cli/.babelrc +++ b/packages/gatsby-dev-cli/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-image/.babelrc b/packages/gatsby-image/.babelrc index 49f11f3ac4077..c5aaeee07bfaf 100644 --- a/packages/gatsby-image/.babelrc +++ b/packages/gatsby-image/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-link/.babelrc b/packages/gatsby-link/.babelrc index 61247365a9c31..aaa36072d7588 100644 --- a/packages/gatsby-link/.babelrc +++ b/packages/gatsby-link/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-plugin-canonical-urls/.babelrc b/packages/gatsby-plugin-canonical-urls/.babelrc index 61247365a9c31..aaa36072d7588 100644 --- a/packages/gatsby-plugin-canonical-urls/.babelrc +++ b/packages/gatsby-plugin-canonical-urls/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-plugin-catch-links/.babelrc b/packages/gatsby-plugin-catch-links/.babelrc index 61247365a9c31..aaa36072d7588 100644 --- a/packages/gatsby-plugin-catch-links/.babelrc +++ b/packages/gatsby-plugin-catch-links/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-plugin-coffeescript/.babelrc b/packages/gatsby-plugin-coffeescript/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-plugin-coffeescript/.babelrc +++ b/packages/gatsby-plugin-coffeescript/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-plugin-create-client-paths/.babelrc b/packages/gatsby-plugin-create-client-paths/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-plugin-create-client-paths/.babelrc +++ b/packages/gatsby-plugin-create-client-paths/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-plugin-emotion/.babelrc b/packages/gatsby-plugin-emotion/.babelrc index 61247365a9c31..aaa36072d7588 100644 --- a/packages/gatsby-plugin-emotion/.babelrc +++ b/packages/gatsby-plugin-emotion/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-plugin-facebook-analytics/.babelrc b/packages/gatsby-plugin-facebook-analytics/.babelrc index 9235a2c260ca8..31043522b2321 100644 --- a/packages/gatsby-plugin-facebook-analytics/.babelrc +++ b/packages/gatsby-plugin-facebook-analytics/.babelrc @@ -1,3 +1,3 @@ { - "presets": [["../../.babel-preset.js", { "browser": true }]] + "presets": [["babel-preset-gatsby-package", { "browser": true }]] } diff --git a/packages/gatsby-plugin-feed/.babelrc b/packages/gatsby-plugin-feed/.babelrc index 61247365a9c31..aaa36072d7588 100644 --- a/packages/gatsby-plugin-feed/.babelrc +++ b/packages/gatsby-plugin-feed/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-plugin-fullstory/.babelrc b/packages/gatsby-plugin-fullstory/.babelrc index 9235a2c260ca8..31043522b2321 100644 --- a/packages/gatsby-plugin-fullstory/.babelrc +++ b/packages/gatsby-plugin-fullstory/.babelrc @@ -1,3 +1,3 @@ { - "presets": [["../../.babel-preset.js", { "browser": true }]] + "presets": [["babel-preset-gatsby-package", { "browser": true }]] } diff --git a/packages/gatsby-plugin-glamor/.babelrc b/packages/gatsby-plugin-glamor/.babelrc index 61247365a9c31..aaa36072d7588 100644 --- a/packages/gatsby-plugin-glamor/.babelrc +++ b/packages/gatsby-plugin-glamor/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-plugin-google-analytics/.babelrc b/packages/gatsby-plugin-google-analytics/.babelrc index 61247365a9c31..aaa36072d7588 100644 --- a/packages/gatsby-plugin-google-analytics/.babelrc +++ b/packages/gatsby-plugin-google-analytics/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-plugin-google-tagmanager/.babelrc b/packages/gatsby-plugin-google-tagmanager/.babelrc index 61247365a9c31..aaa36072d7588 100644 --- a/packages/gatsby-plugin-google-tagmanager/.babelrc +++ b/packages/gatsby-plugin-google-tagmanager/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-plugin-guess-js/.babelrc b/packages/gatsby-plugin-guess-js/.babelrc index 49f11f3ac4077..c5aaeee07bfaf 100644 --- a/packages/gatsby-plugin-guess-js/.babelrc +++ b/packages/gatsby-plugin-guess-js/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-plugin-jss/.babelrc b/packages/gatsby-plugin-jss/.babelrc index 61247365a9c31..aaa36072d7588 100644 --- a/packages/gatsby-plugin-jss/.babelrc +++ b/packages/gatsby-plugin-jss/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-plugin-layout/.babelrc b/packages/gatsby-plugin-layout/.babelrc index 49f11f3ac4077..c5aaeee07bfaf 100644 --- a/packages/gatsby-plugin-layout/.babelrc +++ b/packages/gatsby-plugin-layout/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-plugin-less/.babelrc b/packages/gatsby-plugin-less/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-plugin-less/.babelrc +++ b/packages/gatsby-plugin-less/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-plugin-lodash/.babelrc b/packages/gatsby-plugin-lodash/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-plugin-lodash/.babelrc +++ b/packages/gatsby-plugin-lodash/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-plugin-manifest/.babelrc b/packages/gatsby-plugin-manifest/.babelrc index 61247365a9c31..aaa36072d7588 100644 --- a/packages/gatsby-plugin-manifest/.babelrc +++ b/packages/gatsby-plugin-manifest/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-plugin-netlify-cms/.babelrc b/packages/gatsby-plugin-netlify-cms/.babelrc index 49f11f3ac4077..c5aaeee07bfaf 100644 --- a/packages/gatsby-plugin-netlify-cms/.babelrc +++ b/packages/gatsby-plugin-netlify-cms/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-plugin-netlify/.babelrc b/packages/gatsby-plugin-netlify/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-plugin-netlify/.babelrc +++ b/packages/gatsby-plugin-netlify/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-plugin-nprogress/.babelrc b/packages/gatsby-plugin-nprogress/.babelrc index 61247365a9c31..aaa36072d7588 100644 --- a/packages/gatsby-plugin-nprogress/.babelrc +++ b/packages/gatsby-plugin-nprogress/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-plugin-offline/.babelrc b/packages/gatsby-plugin-offline/.babelrc index 61247365a9c31..aaa36072d7588 100644 --- a/packages/gatsby-plugin-offline/.babelrc +++ b/packages/gatsby-plugin-offline/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-plugin-page-creator/.babelrc b/packages/gatsby-plugin-page-creator/.babelrc index f79d788caba2c..edfe6156a1a5b 100644 --- a/packages/gatsby-plugin-page-creator/.babelrc +++ b/packages/gatsby-plugin-page-creator/.babelrc @@ -1,3 +1,3 @@ { - presets: [["../../.babel-preset.js", { browser: true }]], + presets: [["babel-preset-gatsby-package", { browser: true }]], } diff --git a/packages/gatsby-plugin-postcss/.babelrc b/packages/gatsby-plugin-postcss/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-plugin-postcss/.babelrc +++ b/packages/gatsby-plugin-postcss/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-plugin-preact/.babelrc b/packages/gatsby-plugin-preact/.babelrc index 49f11f3ac4077..c5aaeee07bfaf 100644 --- a/packages/gatsby-plugin-preact/.babelrc +++ b/packages/gatsby-plugin-preact/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-plugin-react-css-modules/.babelrc b/packages/gatsby-plugin-react-css-modules/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-plugin-react-css-modules/.babelrc +++ b/packages/gatsby-plugin-react-css-modules/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-plugin-react-helmet/.babelrc b/packages/gatsby-plugin-react-helmet/.babelrc index 61247365a9c31..aaa36072d7588 100644 --- a/packages/gatsby-plugin-react-helmet/.babelrc +++ b/packages/gatsby-plugin-react-helmet/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-plugin-remove-trailing-slashes/.babelrc b/packages/gatsby-plugin-remove-trailing-slashes/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-plugin-remove-trailing-slashes/.babelrc +++ b/packages/gatsby-plugin-remove-trailing-slashes/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-plugin-sass/.babelrc b/packages/gatsby-plugin-sass/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-plugin-sass/.babelrc +++ b/packages/gatsby-plugin-sass/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-plugin-sharp/.babelrc b/packages/gatsby-plugin-sharp/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-plugin-sharp/.babelrc +++ b/packages/gatsby-plugin-sharp/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-plugin-sitemap/.babelrc b/packages/gatsby-plugin-sitemap/.babelrc index 61247365a9c31..aaa36072d7588 100644 --- a/packages/gatsby-plugin-sitemap/.babelrc +++ b/packages/gatsby-plugin-sitemap/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-plugin-styled-components/.babelrc b/packages/gatsby-plugin-styled-components/.babelrc index 61247365a9c31..aaa36072d7588 100644 --- a/packages/gatsby-plugin-styled-components/.babelrc +++ b/packages/gatsby-plugin-styled-components/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-plugin-styled-jsx/.babelrc b/packages/gatsby-plugin-styled-jsx/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-plugin-styled-jsx/.babelrc +++ b/packages/gatsby-plugin-styled-jsx/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-plugin-styletron/.babelrc b/packages/gatsby-plugin-styletron/.babelrc index 49f11f3ac4077..c5aaeee07bfaf 100644 --- a/packages/gatsby-plugin-styletron/.babelrc +++ b/packages/gatsby-plugin-styletron/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-plugin-stylus/.babelrc b/packages/gatsby-plugin-stylus/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-plugin-stylus/.babelrc +++ b/packages/gatsby-plugin-stylus/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-plugin-subfont/.babelrc b/packages/gatsby-plugin-subfont/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-plugin-subfont/.babelrc +++ b/packages/gatsby-plugin-subfont/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-plugin-twitter/.babelrc b/packages/gatsby-plugin-twitter/.babelrc index 61247365a9c31..aaa36072d7588 100644 --- a/packages/gatsby-plugin-twitter/.babelrc +++ b/packages/gatsby-plugin-twitter/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-plugin-typescript/.babelrc b/packages/gatsby-plugin-typescript/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-plugin-typescript/.babelrc +++ b/packages/gatsby-plugin-typescript/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-plugin-typography/.babelrc b/packages/gatsby-plugin-typography/.babelrc index 61247365a9c31..aaa36072d7588 100644 --- a/packages/gatsby-plugin-typography/.babelrc +++ b/packages/gatsby-plugin-typography/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-react-router-scroll/.babelrc b/packages/gatsby-react-router-scroll/.babelrc index 201b1bdc8da7c..e437418264e89 100644 --- a/packages/gatsby-react-router-scroll/.babelrc +++ b/packages/gatsby-react-router-scroll/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ], "plugins": ["dev-expression"] } diff --git a/packages/gatsby-remark-autolink-headers/.babelrc b/packages/gatsby-remark-autolink-headers/.babelrc index 61247365a9c31..aaa36072d7588 100644 --- a/packages/gatsby-remark-autolink-headers/.babelrc +++ b/packages/gatsby-remark-autolink-headers/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-remark-code-repls/.babelrc b/packages/gatsby-remark-code-repls/.babelrc index 49f11f3ac4077..c5aaeee07bfaf 100644 --- a/packages/gatsby-remark-code-repls/.babelrc +++ b/packages/gatsby-remark-code-repls/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-remark-copy-linked-files/.babelrc b/packages/gatsby-remark-copy-linked-files/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-remark-copy-linked-files/.babelrc +++ b/packages/gatsby-remark-copy-linked-files/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-remark-custom-blocks/.babelrc b/packages/gatsby-remark-custom-blocks/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-remark-custom-blocks/.babelrc +++ b/packages/gatsby-remark-custom-blocks/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-remark-embed-snippet/.babelrc b/packages/gatsby-remark-embed-snippet/.babelrc index 49f11f3ac4077..c5aaeee07bfaf 100644 --- a/packages/gatsby-remark-embed-snippet/.babelrc +++ b/packages/gatsby-remark-embed-snippet/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-remark-graphviz/.babelrc b/packages/gatsby-remark-graphviz/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-remark-graphviz/.babelrc +++ b/packages/gatsby-remark-graphviz/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-remark-images/.babelrc b/packages/gatsby-remark-images/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-remark-images/.babelrc +++ b/packages/gatsby-remark-images/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-remark-katex/.babelrc b/packages/gatsby-remark-katex/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-remark-katex/.babelrc +++ b/packages/gatsby-remark-katex/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-remark-prismjs/.babelrc b/packages/gatsby-remark-prismjs/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-remark-prismjs/.babelrc +++ b/packages/gatsby-remark-prismjs/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-remark-responsive-iframe/.babelrc b/packages/gatsby-remark-responsive-iframe/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-remark-responsive-iframe/.babelrc +++ b/packages/gatsby-remark-responsive-iframe/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-remark-smartypants/.babelrc b/packages/gatsby-remark-smartypants/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-remark-smartypants/.babelrc +++ b/packages/gatsby-remark-smartypants/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-source-contentful/.babelrc b/packages/gatsby-source-contentful/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-source-contentful/.babelrc +++ b/packages/gatsby-source-contentful/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-source-drupal/.babelrc b/packages/gatsby-source-drupal/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-source-drupal/.babelrc +++ b/packages/gatsby-source-drupal/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-source-faker/.babelrc b/packages/gatsby-source-faker/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-source-faker/.babelrc +++ b/packages/gatsby-source-faker/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-source-filesystem/.babelrc b/packages/gatsby-source-filesystem/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-source-filesystem/.babelrc +++ b/packages/gatsby-source-filesystem/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-source-graphql/.babelrc b/packages/gatsby-source-graphql/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-source-graphql/.babelrc +++ b/packages/gatsby-source-graphql/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-source-hacker-news/.babelrc b/packages/gatsby-source-hacker-news/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-source-hacker-news/.babelrc +++ b/packages/gatsby-source-hacker-news/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-source-lever/.babelrc b/packages/gatsby-source-lever/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-source-lever/.babelrc +++ b/packages/gatsby-source-lever/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-source-medium/.babelrc b/packages/gatsby-source-medium/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-source-medium/.babelrc +++ b/packages/gatsby-source-medium/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-source-mongodb/.babelrc b/packages/gatsby-source-mongodb/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-source-mongodb/.babelrc +++ b/packages/gatsby-source-mongodb/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-source-npm-package-search/.babelrc b/packages/gatsby-source-npm-package-search/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-source-npm-package-search/.babelrc +++ b/packages/gatsby-source-npm-package-search/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-source-wikipedia/.babelrc b/packages/gatsby-source-wikipedia/.babelrc index 49f11f3ac4077..c5aaeee07bfaf 100644 --- a/packages/gatsby-source-wikipedia/.babelrc +++ b/packages/gatsby-source-wikipedia/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-source-wordpress/.babelrc b/packages/gatsby-source-wordpress/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-source-wordpress/.babelrc +++ b/packages/gatsby-source-wordpress/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-transformer-csv/.babelrc b/packages/gatsby-transformer-csv/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-transformer-csv/.babelrc +++ b/packages/gatsby-transformer-csv/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-transformer-documentationjs/.babelrc b/packages/gatsby-transformer-documentationjs/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-transformer-documentationjs/.babelrc +++ b/packages/gatsby-transformer-documentationjs/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-transformer-excel/.babelrc b/packages/gatsby-transformer-excel/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-transformer-excel/.babelrc +++ b/packages/gatsby-transformer-excel/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-transformer-hjson/.babelrc b/packages/gatsby-transformer-hjson/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-transformer-hjson/.babelrc +++ b/packages/gatsby-transformer-hjson/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-transformer-javascript-frontmatter/.babelrc b/packages/gatsby-transformer-javascript-frontmatter/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-transformer-javascript-frontmatter/.babelrc +++ b/packages/gatsby-transformer-javascript-frontmatter/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-transformer-javascript-static-exports/.babelrc b/packages/gatsby-transformer-javascript-static-exports/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-transformer-javascript-static-exports/.babelrc +++ b/packages/gatsby-transformer-javascript-static-exports/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-transformer-json/.babelrc b/packages/gatsby-transformer-json/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-transformer-json/.babelrc +++ b/packages/gatsby-transformer-json/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-transformer-pdf/.babelrc b/packages/gatsby-transformer-pdf/.babelrc index 15dc943f1df57..9f5de61e0d79e 100644 --- a/packages/gatsby-transformer-pdf/.babelrc +++ b/packages/gatsby-transformer-pdf/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] -} \ No newline at end of file +} diff --git a/packages/gatsby-transformer-react-docgen/.babelrc b/packages/gatsby-transformer-react-docgen/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-transformer-react-docgen/.babelrc +++ b/packages/gatsby-transformer-react-docgen/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-transformer-remark/.babelrc b/packages/gatsby-transformer-remark/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-transformer-remark/.babelrc +++ b/packages/gatsby-transformer-remark/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-transformer-screenshot/.babelrc b/packages/gatsby-transformer-screenshot/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-transformer-screenshot/.babelrc +++ b/packages/gatsby-transformer-screenshot/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-transformer-sharp/.babelrc b/packages/gatsby-transformer-sharp/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-transformer-sharp/.babelrc +++ b/packages/gatsby-transformer-sharp/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-transformer-sqip/.babelrc b/packages/gatsby-transformer-sqip/.babelrc index 61247365a9c31..aaa36072d7588 100644 --- a/packages/gatsby-transformer-sqip/.babelrc +++ b/packages/gatsby-transformer-sqip/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/packages/gatsby-transformer-toml/.babelrc b/packages/gatsby-transformer-toml/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-transformer-toml/.babelrc +++ b/packages/gatsby-transformer-toml/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-transformer-xml/.babelrc b/packages/gatsby-transformer-xml/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-transformer-xml/.babelrc +++ b/packages/gatsby-transformer-xml/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby-transformer-yaml/.babelrc b/packages/gatsby-transformer-yaml/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/gatsby-transformer-yaml/.babelrc +++ b/packages/gatsby-transformer-yaml/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/packages/gatsby/package.json b/packages/gatsby/package.json index 2f513574c45c2..e1452b2b04ada 100644 --- a/packages/gatsby/package.json +++ b/packages/gatsby/package.json @@ -13,12 +13,7 @@ "@babel/code-frame": "^7.0.0", "@babel/core": "^7.0.0", "@babel/parser": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@babel/plugin-syntax-dynamic-import": "^7.0.0", - "@babel/plugin-transform-runtime": "^7.0.0", "@babel/polyfill": "^7.0.0", - "@babel/preset-env": "^7.0.0", - "@babel/preset-react": "^7.0.0", "@babel/runtime": "^7.0.0", "@babel/traverse": "^7.0.0", "@reach/router": "^1.1.1", @@ -26,9 +21,9 @@ "babel-core": "7.0.0-bridge.0", "babel-eslint": "^8.2.2", "babel-loader": "8.0.0-beta.4", + "babel-preset-gatsby": "^0.1.0", "babel-plugin-add-module-exports": "^0.2.1", "babel-plugin-dynamic-import-node": "^1.2.0", - "babel-plugin-macros": "^2.4.0", "babel-plugin-remove-graphql-queries": "^2.0.2-rc.3", "better-queue": "^3.8.6", "bluebird": "^3.5.0", @@ -129,11 +124,6 @@ }, "devDependencies": { "@babel/cli": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@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/runtime": "^7.0.0", "cross-env": "^5.1.4", "lerna": "^2.9.0", diff --git a/packages/gatsby/src/redux/__tests__/__snapshots__/babelrc.js.snap b/packages/gatsby/src/redux/__tests__/__snapshots__/babelrc.js.snap index 689ce4a6375c2..b5e94554957f9 100644 --- a/packages/gatsby/src/redux/__tests__/__snapshots__/babelrc.js.snap +++ b/packages/gatsby/src/redux/__tests__/__snapshots__/babelrc.js.snap @@ -167,71 +167,11 @@ Array [ ], Array [ Array [ - "/path/to/module/@babel/preset-env", - Object { - "loose": true, - "modules": false, - "targets": Object { - "browsers": undefined, - }, - "useBuiltIns": "usage", - }, - ], - Object { - "type": "preset", - }, - ], - Array [ - Array [ - "/path/to/module/@babel/preset-react", - Object { - "development": false, - "pragma": "React.createElement", - "useBuiltIns": true, - }, + "/path/to/module/babel-preset-gatsby", ], Object { "type": "preset", }, ], - Array [ - Array [ - "/path/to/module/@babel/plugin-proposal-class-properties", - Object { - "loose": true, - }, - ], - Object { - "type": "plugin", - }, - ], - Array [ - Array [ - "/path/to/module/babel-plugin-macros", - ], - Object { - "type": "plugin", - }, - ], - Array [ - Array [ - "/path/to/module/@babel/plugin-syntax-dynamic-import", - ], - Object { - "type": "plugin", - }, - ], - Array [ - Array [ - "/path/to/module/@babel/plugin-transform-runtime", - Object { - "helpers": true, - "regenerator": true, - }, - ], - Object { - "type": "plugin", - }, - ], ] `; diff --git a/packages/gatsby/src/utils/babel-loader-helpers.js b/packages/gatsby/src/utils/babel-loader-helpers.js index 1559136fcbf3b..4ce5b6b3c98c3 100644 --- a/packages/gatsby/src/utils/babel-loader-helpers.js +++ b/packages/gatsby/src/utils/babel-loader-helpers.js @@ -48,95 +48,14 @@ const prepareOptions = (babel, resolve = require.resolve) => { ) } - // Fallback presets/plugins + // Fallback preset const fallbackPresets = [] - const fallbackPlugins = [] - - let targets - if (stage === `build-html`) { - targets = { - node: `current`, - } - } else { - targets = { - browsers: pluginBabelConfig.browserslist, - } - } fallbackPresets.push( - babel.createConfigItem( - [ - resolve(`@babel/preset-env`), - { - loose: true, - modules: false, - useBuiltIns: `usage`, - targets, - }, - ], - { - type: `preset`, - } - ) - ) - - fallbackPresets.push( - babel.createConfigItem( - [ - resolve(`@babel/preset-react`), - { - useBuiltIns: true, - pragma: `React.createElement`, - development: stage === `develop`, - }, - ], - { - type: `preset`, - } - ) - ) - - fallbackPlugins.push( - babel.createConfigItem( - [ - resolve(`@babel/plugin-proposal-class-properties`), - { - loose: true, - }, - ], - { - type: `plugin`, - } - ) - ) - - fallbackPlugins.push( - babel.createConfigItem([resolve(`babel-plugin-macros`)], { - type: `plugin`, + babel.createConfigItem([resolve(`babel-preset-gatsby`)], { + type: `preset`, }) ) - - fallbackPlugins.push( - babel.createConfigItem([resolve(`@babel/plugin-syntax-dynamic-import`)], { - type: `plugin`, - }) - ) - - fallbackPlugins.push( - babel.createConfigItem( - [ - resolve(`@babel/plugin-transform-runtime`), - { - helpers: true, - regenerator: true, - }, - ], - { - type: `plugin`, - } - ) - ) - // Go through babel state and create config items for presets/plugins from. const reduxPlugins = [] const reduxPresets = [] @@ -160,7 +79,6 @@ const prepareOptions = (babel, resolve = require.resolve) => { reduxPlugins, requiredPresets, requiredPlugins, - fallbackPlugins, fallbackPresets, ] } diff --git a/packages/gatsby/src/utils/babel-loader.js b/packages/gatsby/src/utils/babel-loader.js index d88c26f313545..b3a646363cd0a 100644 --- a/packages/gatsby/src/utils/babel-loader.js +++ b/packages/gatsby/src/utils/babel-loader.js @@ -43,7 +43,6 @@ module.exports = babelLoader.custom(babel => { reduxPlugins, requiredPresets, requiredPlugins, - fallbackPlugins, fallbackPresets, ] = prepareOptions(babel) @@ -52,7 +51,7 @@ module.exports = babelLoader.custom(babel => { if (!partialConfig.hasFilesystemConfig()) { options = { ...options, - plugins: [...fallbackPlugins, ...requiredPlugins], + plugins: requiredPlugins, presets: [...fallbackPresets, ...requiredPresets], } } else { diff --git a/packages/graphql-skip-limit/.babelrc b/packages/graphql-skip-limit/.babelrc index b5d6b28d4b5ea..9f5de61e0d79e 100644 --- a/packages/graphql-skip-limit/.babelrc +++ b/packages/graphql-skip-limit/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js"] + ["babel-preset-gatsby-package"] ] } diff --git a/plop-templates/package/.babelrc.hbs b/plop-templates/package/.babelrc.hbs index 49f11f3ac4077..c5aaeee07bfaf 100644 --- a/plop-templates/package/.babelrc.hbs +++ b/plop-templates/package/.babelrc.hbs @@ -1,5 +1,5 @@ { "presets": [ - ["../../.babel-preset.js", { "browser": true }] + ["babel-preset-gatsby-package", { "browser": true }] ] } diff --git a/yarn.lock b/yarn.lock index f5945111f9290..46579201325be 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2923,12 +2923,13 @@ babel-plugin-lodash@^3.2.11: lodash "^4.17.10" require-package-name "^2.0.1" -babel-plugin-macros@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.4.0.tgz#6c5f9836e1f6c0a9743b3bab4af29f73e437e544" - integrity sha512-flIBfrqAdHWn+4l2cS/4jZEyl+m5EaBHVzTb0aOF+eu/zR7E41/MoCFHPhDNL8Wzq1nyelnXeT+vcL2byFLSZw== +babel-plugin-macros@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.4.2.tgz#21b1a2e82e2130403c5ff785cba6548e9b644b28" + integrity sha512-NBVpEWN4OQ/bHnu1fyDaAaTPAjnhXCEPqr1RwqxrU7b6tZ2hypp+zX4hlNfmVGfClD5c3Sl6Hfj5TJNF5VG5aA== dependencies: cosmiconfig "^5.0.5" + resolve "^1.8.1" babel-plugin-react-css-modules@^3.2.1: version "3.4.2"