Ecmascript 6 如何将网页包babel loader和es6与worker loader一起使用?
我正在尝试将Ecmascript 6 如何将网页包babel loader和es6与worker loader一起使用?,ecmascript-6,webpack,babeljs,web-worker,Ecmascript 6,Webpack,Babeljs,Web Worker,我正在尝试将worker loader与babel一起使用,以便在web worker代码中支持es6导入 我的webpack.config.js中有以下设置 { test: /\.worker\.js$/, loader: "worker!babel", presets: ['es2015'] } 这将正确地为worker生成一个单独的捆绑文件,其哈希名称类似于d46f60b8e184bf8b1cb8.worker.js { test
worker loader
与babel
一起使用,以便在web worker代码中支持es6导入
我的webpack.config.js中有以下设置
{
test: /\.worker\.js$/,
loader: "worker!babel",
presets: ['es2015']
}
这将正确地为worker生成一个单独的捆绑文件,其哈希名称类似于d46f60b8e184bf8b1cb8.worker.js
{
test: /\.worker\.js$/,
loader: "worker!babel",
presets: ['es2015']
}
但是,该文件不是通过Babel转换运行的,而是转换为es5。因此,它包含原始es6导入状态网和在浏览器中失败的语法。看起来像:
/* 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']
}
并且还尝试将其移动到预加载程序
和后加载程序
,但没有成功。我遇到了相同的问题,并通过使用选项中提到的查询字符串参数获得了成功:
因此: