2016-10-29 117 views
2

我正在尝试使用worker-loaderbabel来支持web worker代码中的es6导入。如何将webpack babel-loader和es6与worker-loader一起使用?

我在webpack.config.js

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

这正确地产生了工人一个sepearte包文件与哈希名称,如d46f60b8e184bf8b1cb8.worker.js

但是这个文件不通过巴贝尔运行转换下面的设置和转换为es5。所以它包含原始的es6导入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

回答

2

我遇到了同样的问题,通过下选择here提到的查询字符串参数取得了成功:

所以:

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