如何将 webpack babel-loader 和 es6 与 worker-loader 一起使用?
How to use webpack babel-loader and es6 with worker-loader?
我正在尝试将 worker-loader
与 babel
结合使用,以便在网络工作者代码中支持 es6 导入。
我的 webpack.config.js
中有以下设置
{
test: /\.worker\.js$/,
loader: "worker!babel",
presets: ['es2015']
}
这会正确地为 worker 生成一个单独的包文件,其散列名称类似于 d46f60b8e184bf8b1cb8.worker.js
然而这个文件并没有运行通过Babel转换并转换为es5。因此它包含在浏览器中失败的原始 es6 import statmenets 和语法。看起来像:
/* 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
但没有成功。
我 运行 遇到了同样的问题,并通过使用选项 here:
下提到的查询字符串参数成功
所以:
{
test: /\.worker\.js$/,
loader: "worker!babel?presets[]=es2015"
}
我正在尝试将 worker-loader
与 babel
结合使用,以便在网络工作者代码中支持 es6 导入。
我的 webpack.config.js
{
test: /\.worker\.js$/,
loader: "worker!babel",
presets: ['es2015']
}
这会正确地为 worker 生成一个单独的包文件,其散列名称类似于 d46f60b8e184bf8b1cb8.worker.js
然而这个文件并没有运行通过Babel转换并转换为es5。因此它包含在浏览器中失败的原始 es6 import statmenets 和语法。看起来像:
/* 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
但没有成功。
我 运行 遇到了同样的问题,并通过使用选项 here:
下提到的查询字符串参数成功所以:
{
test: /\.worker\.js$/,
loader: "worker!babel?presets[]=es2015"
}