Merge branch 'master' into 2.0

This commit is contained in:
Brian Ng 2017-03-28 10:37:47 -05:00
commit 9a5ab8cfea
11 changed files with 58 additions and 9 deletions

View File

@ -4,4 +4,6 @@ node_modules
scripts
.eslintignore
.travis.yml
codecov.yml
data/*.js
yarn.lock

View File

@ -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)
- ?

View File

@ -1 +1,5 @@
export default ["web.timers", "web.immediate", "web.dom.iterable"];
export const defaultWebIncludes = [
"web.timers",
"web.immediate",
"web.dom.iterable",
];

View File

@ -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);
}

View File

@ -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) => {

View File

@ -0,0 +1 @@
import "babel-polyfill";

View 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";

View File

@ -0,0 +1,13 @@
{
"presets": [
["../../../../lib", {
"targets": {
"chrome": 55,
"node": 7.6,
"uglify": true
},
"modules": false,
"useBuiltIns": true
}]
]
}

View File

@ -0,0 +1 @@
import "babel-polyfill";

View 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";

View File

@ -0,0 +1,12 @@
{
"presets": [
["../../../../lib", {
"targets": {
"node": 7.6,
"uglify": true
},
"modules": false,
"useBuiltIns": true
}]
]
}