我如何在npm中要求()网络工作者?

时间:2016-11-12 21:03:51

标签: javascript node.js npm webpack web-worker

我有一个npm / webpack设置,我的部分应用程序需要Web Workers。通常,使用以下语法创建Web worker:

var worker = new Worker('path/to/external/js/file.js');

在npm中,这不起作用,因为我使用的开发环境不接受这样的路径。必须使用require()包含文件。

我无法绝对链接到该文件,因为这违反了跨源规则。

是否有包含这些工作文件的策略?

1 个答案:

答案 0 :(得分:2)

Webpack提供的worker-loader加载器似乎为您的问题提供了解决方案。可以使用npm install --save-dev worker-loader安装此模块。

查看how to use loaders,然后要求您的网络工作者文件如下:

const Foo = require("worker!./path/to/external/js/file.js");
const fooWorker = new Foo();

请注意路径前面的worker!,它告诉Webpack专门使用工作负载。

如果您的设置正确,您应该能够在工作文件本身中正常需要模块。