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

时间:2016-10-29 19:46:09

标签: ecmascript-6 webpack babeljs web-worker

我尝试将worker-loaderbabel一起用于网络工作人员代码中的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']
   }

并尝试将其移至preLoaderspostLoaders但未成功。

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,并通过使用选项here下提到的查询字符串参数获得了成功:

所以:

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