From 41fdf59ee6b52c1bee81f2ec1fbbc11c85ffb217 Mon Sep 17 00:00:00 2001 From: Dominik Schilling Date: Thu, 20 May 2021 10:49:12 +0200 Subject: [PATCH] Babel Preset Default: Configure @babel/preset-env preset to respect a local Browserslist configuration (#31898) * Babel Preset Default: Configure @babel/preset-env preset to respect a local Browserslist configuration * Replace nullish coalescing operator * Rename variable for clarity * Update browserslist to 4.16.6 * Clean up package-lock.json * Update caniuse-lite * Fix prettier issue * Update changelog for scripts too --- package-lock.json | 23 +++++++++++----------- package.json | 2 +- packages/babel-preset-default/CHANGELOG.md | 4 ++++ packages/babel-preset-default/README.md | 4 ++-- packages/babel-preset-default/index.js | 11 ++++++++++- packages/babel-preset-default/package.json | 1 + packages/scripts/CHANGELOG.md | 4 ++++ 7 files changed, 34 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4d8dafe096d79..9785629ea373d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13160,6 +13160,7 @@ "@wordpress/browserslist-config": "file:packages/browserslist-config", "@wordpress/element": "file:packages/element", "@wordpress/warning": "file:packages/warning", + "browserslist": "^4.16.6", "core-js": "^3.6.4" } }, @@ -24772,13 +24773,13 @@ } }, "browserslist": { - "version": "4.16.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.5.tgz", - "integrity": "sha512-C2HAjrM1AI/djrpAUU/tr4pml1DqLIzJKSLDBXBrNErl9ZCCTXdhwxdJjYc16953+mBWf7Lw+uUJgpgb8cN71A==", + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", "requires": { - "caniuse-lite": "^1.0.30001214", + "caniuse-lite": "^1.0.30001219", "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.719", + "electron-to-chromium": "^1.3.723", "escalade": "^3.1.1", "node-releases": "^1.1.71" }, @@ -24789,9 +24790,9 @@ "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" }, "electron-to-chromium": { - "version": "1.3.720", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.720.tgz", - "integrity": "sha512-B6zLTxxaOFP4WZm6DrvgRk8kLFYWNhQ5TrHMC0l5WtkMXhU5UbnvWoTfeEwqOruUSlNMhVLfYak7REX6oC5Yfw==" + "version": "1.3.730", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.730.tgz", + "integrity": "sha512-1Tr3h09wXhmqXnvDyrRe6MFgTeU0ZXy3+rMJWTrOHh/HNesWwBBrKnMxRJWZ86dzs8qQdw2c7ZE1/qeGHygImA==" } } }, @@ -25140,9 +25141,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001214", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001214.tgz", - "integrity": "sha512-O2/SCpuaU3eASWVaesQirZv1MSjUNOvmugaD8zNSJqw6Vv5SGwoOpA9LJs3pNPfM745nxqPvfZY3MQKY4AKHYg==" + "version": "1.0.30001228", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz", + "integrity": "sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A==" }, "capture-exit": { "version": "2.0.0", diff --git a/package.json b/package.json index 13a4ee1788069..9e9d76eb83e8b 100644 --- a/package.json +++ b/package.json @@ -151,7 +151,7 @@ "babel-plugin-react-native-platform-specific-extensions": "1.1.1", "babel-plugin-transform-remove-console": "6.9.4", "benchmark": "2.1.4", - "browserslist": "4.16.5", + "browserslist": "4.16.6", "chalk": "4.0.0", "commander": "4.1.0", "concurrently": "3.5.0", diff --git a/packages/babel-preset-default/CHANGELOG.md b/packages/babel-preset-default/CHANGELOG.md index d33b6f4c8be2c..4cadfb934ff13 100644 --- a/packages/babel-preset-default/CHANGELOG.md +++ b/packages/babel-preset-default/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +### Bug Fixes + +- Configure `@babel/preset-env` preset to respect a local Browserslist configuration. + ## 6.0.0 (2021-05-14) ### Breaking Changes diff --git a/packages/babel-preset-default/README.md b/packages/babel-preset-default/README.md index 21adcb1b57f64..d8e917f69f689 100644 --- a/packages/babel-preset-default/README.md +++ b/packages/babel-preset-default/README.md @@ -16,13 +16,13 @@ npm install @wordpress/babel-preset-default --save-dev ### Usage -There are a number of methods to configure Babel. See [Babel's Configuration documentation](https://babeljs.io/docs/en/configuration) for more information. To use this preset, simply reference `@wordpress/default` in the `presets` option in your Babel configuration. +There are a number of methods to configure Babel. See [Babel's Configuration documentation](https://babeljs.io/docs/en/configuration) for more information. To use this preset, simply reference `@wordpress/babel-preset-default` in the `presets` option in your Babel configuration. For example, using `.babelrc`: ```json { - "presets": [ "@wordpress/default" ] + "presets": [ "@wordpress/babel-preset-default" ] } ``` diff --git a/packages/babel-preset-default/index.js b/packages/babel-preset-default/index.js index 3e82a7d088be1..876074d245501 100644 --- a/packages/babel-preset-default/index.js +++ b/packages/babel-preset-default/index.js @@ -1,3 +1,8 @@ +/** + * External dependencies + */ +const browserslist = require( 'browserslist' ); + module.exports = ( api ) => { let wpBuildOpts = {}; const isWPBuild = ( name ) => @@ -26,8 +31,12 @@ module.exports = ( api ) => { }; } else { opts.modules = false; + const localBrowserslistConfig = + browserslist.findConfig( '.' ) || {}; opts.targets = { - browsers: require( '@wordpress/browserslist-config' ), + browsers: + localBrowserslistConfig.defaults || + require( '@wordpress/browserslist-config' ), }; } diff --git a/packages/babel-preset-default/package.json b/packages/babel-preset-default/package.json index f3797c9196fd9..832b82a4acbb6 100644 --- a/packages/babel-preset-default/package.json +++ b/packages/babel-preset-default/package.json @@ -38,6 +38,7 @@ "@wordpress/browserslist-config": "file:../browserslist-config", "@wordpress/element": "file:../element", "@wordpress/warning": "file:../warning", + "browserslist": "^4.16.6", "core-js": "^3.6.4" }, "publishConfig": { diff --git a/packages/scripts/CHANGELOG.md b/packages/scripts/CHANGELOG.md index b05ab894d245f..e1488e11e3a65 100644 --- a/packages/scripts/CHANGELOG.md +++ b/packages/scripts/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +### Bug Fix + +- The default Babel configuration has changed to respect a local Browserslist configuration. + ## 16.0.0 (2021-05-14) ### Breaking Changes