如何在npm中要求()networking工作者?

我有一个npm / webpack设置,我的应用程序的一部分需要Web Workers。 通常情况下,networking工作人员使用以下语法创build:

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

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

我不能只是链接到文件,因为这违反了交叉来源规则的事情。

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

Webpack提供的worker-loader loader似乎为您的问题提供了一个解决scheme。 这个模块可以用npm install --save-dev worker-loader来安装。

看看如何使用加载器 ,然后需要你的networking工作者文件如下所示:

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

注意worker! 在path之前加上前缀,这会告诉Webpack专门使用worker loader。

如果你的设置是正确的,你也应该可以正常的在worker文件中要求模块。