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
。
正如你可以阅读的话题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
。