diff --git a/packages/babel-preset-env/README.md b/packages/babel-preset-env/README.md index 9f417e76e7..1e968236c8 100644 --- a/packages/babel-preset-env/README.md +++ b/packages/babel-preset-env/README.md @@ -342,6 +342,8 @@ import "core-js/modules/es7.string.pad-start"; import "core-js/modules/es7.string.pad-end"; ``` +This will also work for `core-js` directly (`import "core-js";` or `require('core-js');`) + #### `useBuiltIns: false` Don't add polyfills automatically per file, or transform `import "@babel/polyfill"` to individual polyfills. diff --git a/packages/babel-preset-env/src/utils.js b/packages/babel-preset-env/src/utils.js index 68205f05e7..714ce2d56f 100644 --- a/packages/babel-preset-env/src/utils.js +++ b/packages/babel-preset-env/src/utils.js @@ -86,7 +86,7 @@ export const filterStageFromList = (list: any, stageList: any) => { }; export const isPolyfillSource = (source: string): boolean => - source === "@babel/polyfill"; + source === "@babel/polyfill" || source === "core-js"; export const isRequire = (t: Object, path: Object): boolean => t.isExpressionStatement(path.node) && diff --git a/packages/babel-preset-env/test/fixtures/preset-options/core-js/input.js b/packages/babel-preset-env/test/fixtures/preset-options/core-js/input.js new file mode 100644 index 0000000000..bd6332b8ba --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options/core-js/input.js @@ -0,0 +1 @@ +import "core-js"; \ No newline at end of file diff --git a/packages/babel-preset-env/test/fixtures/preset-options/core-js/options.json b/packages/babel-preset-env/test/fixtures/preset-options/core-js/options.json new file mode 100644 index 0000000000..7c15d7db40 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options/core-js/options.json @@ -0,0 +1,11 @@ +{ + "presets": [ + ["../../../../lib", { + "targets": { + "chrome": 55 + }, + "modules": false, + "useBuiltIns": "entry" + }] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options/core-js/output.js b/packages/babel-preset-env/test/fixtures/preset-options/core-js/output.js new file mode 100644 index 0000000000..c240e3a175 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options/core-js/output.js @@ -0,0 +1,6 @@ +import "core-js/modules/es6.array.sort"; +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"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/ios-6/output.js b/packages/babel-preset-env/test/fixtures/preset-options/ios-6/output.js deleted file mode 100644 index c3fee8a175..0000000000 --- a/packages/babel-preset-env/test/fixtures/preset-options/ios-6/output.js +++ /dev/null @@ -1 +0,0 @@ -import "core-js";