Merge branch 'master' into 2.0
This commit is contained in:
commit
9a5ab8cfea
@ -4,4 +4,6 @@ node_modules
|
||||
scripts
|
||||
.eslintignore
|
||||
.travis.yml
|
||||
codecov.yml
|
||||
data/*.js
|
||||
yarn.lock
|
||||
|
||||
@ -384,8 +384,5 @@ If you get a `SyntaxError: Unexpected token ...` error when using the [object-re
|
||||
|
||||
## Other Cool Projects
|
||||
|
||||
- [auto-babel](https://github.com/jakepusateri/auto-babel)
|
||||
- [babel-preset-target](https://github.com/sdkennedy/babel-preset-target)
|
||||
- [babel-preset-modern-node](https://github.com/michaelcontento/babel-preset-modern-node)
|
||||
- [babel-preset-modern-browsers](https://github.com/christophehurpeau/babel-preset-modern-browsers)
|
||||
- ?
|
||||
|
||||
@ -1 +1,5 @@
|
||||
export default ["web.timers", "web.immediate", "web.dom.iterable"];
|
||||
export const defaultWebIncludes = [
|
||||
"web.timers",
|
||||
"web.immediate",
|
||||
"web.dom.iterable",
|
||||
];
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import browserslist from "browserslist";
|
||||
import builtInsList from "../data/built-ins.json";
|
||||
import defaultInclude from "./default-includes";
|
||||
import { defaultWebIncludes } from "./default-includes";
|
||||
import moduleTransformations from "./module-transformations";
|
||||
import normalizeOptions, {
|
||||
getElectronChromeVersion,
|
||||
@ -158,7 +158,7 @@ const logPlugin = (plugin, targets, list) => {
|
||||
};
|
||||
|
||||
const filterItem = (targets, exclusions, list, item) => {
|
||||
const isDefault = defaultInclude.indexOf(item) >= 0;
|
||||
const isDefault = defaultWebIncludes.indexOf(item) >= 0;
|
||||
const notExcluded = exclusions.indexOf(item) === -1;
|
||||
|
||||
if (isDefault) return notExcluded;
|
||||
@ -180,6 +180,14 @@ export const transformIncludesAndExcludes = opts => ({
|
||||
builtIns: opts.filter(opt => opt.match(/^(es\d+|web)\./)),
|
||||
});
|
||||
|
||||
function getPlatformSpecificDefaultFor(targets) {
|
||||
const targetNames = Object.keys(targets);
|
||||
const isAnyTarget = !targetNames.length;
|
||||
const isWebTarget = targetNames.some(name => name !== "node");
|
||||
|
||||
return isAnyTarget || isWebTarget ? defaultWebIncludes : [];
|
||||
}
|
||||
|
||||
export default function buildPreset(context, opts = {}) {
|
||||
const validatedOptions = normalizeOptions(opts);
|
||||
const { debug, loose, moduleType, useBuiltIns } = validatedOptions;
|
||||
@ -209,7 +217,7 @@ export default function buildPreset(context, opts = {}) {
|
||||
builtInsList,
|
||||
);
|
||||
polyfills = Object.keys(builtInsList)
|
||||
.concat(defaultInclude)
|
||||
.concat(getPlatformSpecificDefaultFor(polyfillTargets))
|
||||
.filter(filterBuiltIns)
|
||||
.concat(include.builtIns);
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import invariant from "invariant";
|
||||
import { electronToChromium } from "electron-to-chromium";
|
||||
import builtInsList from "../data/built-ins.json";
|
||||
import defaultInclude from "./default-includes";
|
||||
import { defaultWebIncludes } from "./default-includes";
|
||||
import moduleTransformations from "./module-transformations";
|
||||
import pluginFeatures from "../data/plugin-features";
|
||||
|
||||
@ -9,7 +9,7 @@ const validIncludesAndExcludes = [
|
||||
...Object.keys(pluginFeatures),
|
||||
...Object.keys(moduleTransformations).map(m => moduleTransformations[m]),
|
||||
...Object.keys(builtInsList),
|
||||
...defaultInclude,
|
||||
...defaultWebIncludes,
|
||||
];
|
||||
|
||||
export const validateIncludesAndExcludes = (opts = [], type) => {
|
||||
|
||||
1
experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-node-web/actual.js
vendored
Normal file
1
experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-node-web/actual.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
import "babel-polyfill";
|
||||
7
experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-node-web/expected.js
vendored
Normal file
7
experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-node-web/expected.js
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
import "core-js/modules/es7.string.pad-start";
|
||||
import "core-js/modules/es7.string.pad-end";
|
||||
import "core-js/modules/web.timers";
|
||||
import "core-js/modules/web.immediate";
|
||||
import "core-js/modules/web.dom.iterable";
|
||||
import "regenerator-runtime/runtime";
|
||||
|
||||
13
experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-node-web/options.json
vendored
Normal file
13
experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-node-web/options.json
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"presets": [
|
||||
["../../../../lib", {
|
||||
"targets": {
|
||||
"chrome": 55,
|
||||
"node": 7.6,
|
||||
"uglify": true
|
||||
},
|
||||
"modules": false,
|
||||
"useBuiltIns": true
|
||||
}]
|
||||
]
|
||||
}
|
||||
1
experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-node/actual.js
vendored
Normal file
1
experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-node/actual.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
import "babel-polyfill";
|
||||
4
experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-node/expected.js
vendored
Normal file
4
experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-node/expected.js
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
import "core-js/modules/es7.string.pad-start";
|
||||
import "core-js/modules/es7.string.pad-end";
|
||||
import "regenerator-runtime/runtime";
|
||||
|
||||
12
experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-node/options.json
vendored
Normal file
12
experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-node/options.json
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"presets": [
|
||||
["../../../../lib", {
|
||||
"targets": {
|
||||
"node": 7.6,
|
||||
"uglify": true
|
||||
},
|
||||
"modules": false,
|
||||
"useBuiltIns": true
|
||||
}]
|
||||
]
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user