diff --git a/packages/@vue/babel-preset-app/__tests__/babel-preset.spec.js b/packages/@vue/babel-preset-app/__tests__/babel-preset.spec.js index 1b2832f00f..f8090aa2f0 100644 --- a/packages/@vue/babel-preset-app/__tests__/babel-preset.spec.js +++ b/packages/@vue/babel-preset-app/__tests__/babel-preset.spec.js @@ -209,3 +209,18 @@ test('should inject polyfills / helpers using "import" statements for an es modu expect(code).toMatch('import "core-js/modules/es.promise"') expect(code).not.toMatch('require(') }) + +test('should not inject excluded polyfills', () => { + const { code } = babel.transformSync(` + new Promise() + `.trim(), { + babelrc: false, + presets: [[preset, { + exclude: ['es.promise'], + polyfills: ['es.array.iterator', 'es.object.assign'] + }]], + filename: 'test-entry-file.js' + }) + + expect(code).not.toMatch('es.promise') +}) diff --git a/packages/@vue/babel-preset-app/index.js b/packages/@vue/babel-preset-app/index.js index be8775f33e..207b645a4c 100644 --- a/packages/@vue/babel-preset-app/index.js +++ b/packages/@vue/babel-preset-app/index.js @@ -246,10 +246,7 @@ module.exports = (context, options = {}) => { // https://github.com/babel/babel/issues/9903 include: [/@babel[\/|\\\\]runtime/], presets: [ - [require('@babel/preset-env'), { - useBuiltIns, - corejs: useBuiltIns ? require('core-js/package.json').version : false - }] + [require('@babel/preset-env'), envOptions] ] }] }