Skip to content

Commit ef5b46f

Browse files
committed
feat: move all preset-env options under single directive
This gives more control on how the react preset will pass in options to base.
1 parent cb4d6c2 commit ef5b46f

File tree

4 files changed

+27
-13
lines changed

4 files changed

+27
-13
lines changed

packages/babel-preset-base/README.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,9 @@ module.exports = {
8181
'@wpw/base',
8282
{
8383
noDynamicImport: true, // disable @babel/plugin-syntax-dynamic-import
84-
target: 'not dead, > 0.25%', // browserslist query to pass to @babel/preset-env
84+
presetEnv: {
85+
target: 'not dead, > 0.25%', // browserslist query to pass to @babel/preset-env
86+
},
8587
},
8688
],
8789
};
@@ -111,10 +113,10 @@ Set to `true` to disable [`@babel/plugin-proposal-class-properties`](https://bab
111113

112114
Set to `true` to disable [`@babel/plugin-proposal-json-strings`](https://babeljs.io/docs/en/babel-plugin-proposal-json-strings).
113115

114-
#### Options for `@babel/preset-env`
116+
#### `presetEnv` Options for `@babel/preset-env`
115117

116-
What-ever else you pass to the config, is passed directly to `@babel/preset-env`. This
117-
gives you more control on how to configure the most stable `env` preset.
118+
What-ever you pass to the `presetEnv` directive, is passed directly to `@babel/preset-env`. This
119+
gives you more control on how to configure the `@babel/preset-env` preset.
118120

119121
Please [read the documentation](https://babeljs.io/docs/en/babel-preset-env) for
120122
available options.

packages/babel-preset-base/package.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@
33
"version": "0.0.1",
44
"description": "Babel preset for @wps/scripts, without react specific transforms.",
55
"keywords": [
6-
"wordpress", "bundler", "webpack", "browser-sync", "wordpress-bundler"
6+
"wordpress",
7+
"bundler",
8+
"webpack",
9+
"browser-sync",
10+
"wordpress-bundler"
711
],
812
"main": "lib/index.js",
913
"repository": "https://github.com/swashata/wp-webpack-script",
@@ -19,6 +23,9 @@
1923
"@babel/plugin-syntax-import-meta": "^7.0.0",
2024
"@babel/preset-env": "^7.1.0"
2125
},
26+
"peerDependencies": {
27+
"@babel/core": "^7.0.0-0"
28+
},
2229
"engines": {
2330
"node": ">=8.9.0"
2431
},
@@ -32,5 +39,8 @@
3239
},
3340
"publishConfig": {
3441
"access": "public"
42+
},
43+
"devDependencies": {
44+
"@babel/core": "^7.1.0"
3545
}
3646
}

packages/babel-preset-base/src/__tests__/preset.spec.js

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,13 @@ describe('@wpw/babel-preset-base/preset', () => {
1212
expect(typeof configWithNull).toBe('object');
1313
});
1414

15-
test('passes all options to @babel/preset-env', () => {
15+
test('passes all options from presetEnv to @babel/preset-env', () => {
1616
const envOptions = {
17-
targets: 'not-dead, > 25%',
18-
modules: 'umd',
19-
debug: true,
17+
presetEnv: {
18+
targets: 'not-dead, > 25%',
19+
modules: 'umd',
20+
debug: true,
21+
},
2022
};
2123
const config = preset(envOptions);
2224
expect(config).toHaveProperty('presets');
@@ -26,8 +28,8 @@ describe('@wpw/babel-preset-base/preset', () => {
2628
p => Array.isArray(p) && p[0] === '@babel/preset-env'
2729
);
2830
expect(presetEnv).toHaveLength(2);
29-
Object.keys(envOptions).forEach(key => {
30-
expect(presetEnv[1][key]).toBe(envOptions[key]);
31+
Object.keys(envOptions.presetEnv).forEach(key => {
32+
expect(presetEnv[1][key]).toBe(envOptions.presetEnv[key]);
3133
});
3234
});
3335

packages/babel-preset-base/src/preset.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ export default (opts = {}) => {
55
noImportMeta = false,
66
noClassProperties = false,
77
noJsonStrings = false,
8-
...envOptions
8+
presetEnv = {},
99
} = opts || {};
1010

1111
// Create the presets
12-
const presets = [['@babel/preset-env', { ...envOptions }]];
12+
const presets = [['@babel/preset-env', { ...presetEnv }]];
1313

1414
// Create the plugins
1515
const plugins = [];

0 commit comments

Comments
 (0)