如何将 webpack babel-loader 和 es6 与 worker-loader 一起使用?

How to use webpack babel-loader and es6 with worker-loader?

我正在尝试将 worker-loaderbabel 结合使用,以便在网络工作者代码中支持 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']
   }

并尝试将其移动到 preLoaderspostLoaders 但没有成功。

我 运行 遇到了同样的问题,并通过使用选项 here:

下提到的查询字符串参数成功

所以:

{
    test: /\.worker\.js$/,
    loader: "worker!babel?presets[]=es2015"
}