我尝试将worker-loader
与babel
一起用于网络工作人员代码中的es6导入支持。
我在webpack.config.js
{
test: /\.worker\.js$/,
loader: "worker!babel",
presets: ['es2015']
}
这正确地为工作人员生成了一个sepearte包文件,其中包含一个井号名称d46f60b8e184bf8b1cb8.worker.js
但是,此文件不会通过Babel转换运行并转换为es5。因此它包含原始es6导入statmenet和在浏览器中失败的语法。看起来像:
/* 0 */
/***/ function(module, exports) {
import _ from 'lodash';
var o = {foo: 'foo'};
_.has(o, 'foo'); // true
setInterval(() => {
postMessage({tick: Date.now()});
}, 1000);
/***/ }
/******/ ]);
我尝试过切换加载器的顺序,如:
{
test: /\.worker\.js$/,
loader: "babel!worker",
presets: ['es2015']
}
并尝试将其移至preLoaders
和postLoaders
但未成功。
答案 0 :(得分:2)
我遇到了同样的问题,并通过使用选项here下提到的查询字符串参数获得了成功:
所以:
{
test: /\.worker\.js$/,
loader: "worker!babel?presets[]=es2015"
}