没有`Worker-Loader`的Webpack中的Web Worker

时间:2019-12-17 02:33:28

标签: javascript webpack web-worker

脚本如何在Web Workers脚本中使用Javascript imports / require并将其捆绑使用Webpack而不使用Worker-Loader或任何其他“插件”抽象-仅使用浏览器的Web Worker API?

通过Webpack,我能够生成两个脚本:main.jsworker.js。 Webpack文件已设置为可以同时转换两个文件。

main.js中实例化一个新工作线程const worker = new Worker('worker.js')

工作脚本很简单:

/// worker.js

onmessage = function foo() {
  postMessage('test');
};

main.js中,postMessage()正常工作。

但是,一旦将任何模块导入到工作程序中,事情就会中断。

/// worker.js

import bar from 'bar';

onmessage = function foo() {
  postMessage('test');
};

1 个答案:

答案 0 :(得分:2)

有一个type: "module"选项可以传递给Worker's constructor

const worker = new Worker( url, { type: 'module' } );