Webpack 使用 ...arguments 构建项目,即使 babel 预设了 es2015

Webpack build project with ...argumetns even if babel has perset es2015

正如你可以阅读的话题post。我正在使用 webpack 通过 es2015 的 berset 构建项目。每个文件都是 "compiled" 正确的,但是,正如我注意到的那样,webpack 添加了一些自己的变量。我现在已经播种了,因为我在 IE11 中检查了我的项目,它在 (output file):

上抛出了语法错误
var Utils = {
//...
 warn: function () {
    if (window.console && 'function' === typeof window.console.warn)
      window.console.warn(...arguments);
  },

  warnOnce: function(msg) {
    if (!pastWarnings[msg]) {
      pastWarnings[msg] = true;
      this.warn(...arguments);
    }
  },
//...
}

问题的发生是因为 ...arguments

为什么 webpack 这样做?

我的 webpack 配置:

module.exports = {
entry: ['babel-polyfill', path.resolve(__dirname + '/src/app.js')],

output: {
    path: __dirname + '/bin',
    filename: 'app.bundle.js',
},
resolve: {
    extensions: ['.js'],
    modules: ['node_modules'],
    alias: {/*...*/}
},
devtool: "source-map",
target: 'web',
node: {
    fs: "empty"
},
plugins: [
    new webpack.ProvidePlugin({/*...*/})
],
module: {
    loaders: [{
        test: /\.js$/,
        exclude: /node_modules/,
        use: [{
            loader: 'babel-loader',
            options: {
                presets: 'es2015',
            },
        }]
    }, {
        test: /\.scss$/,
        use: [/*...*/]
    }]
}
};

看来我是通过 import 语句导入 ParsleyJs 的。这导致 webpack 按原样使用 Parsley。我只是将此依赖项添加到我的 webpack 配置文件中,然后 webpack 将其正确编译为 es5