我有一个 webpack 库,其中包含一个 webworker(通过 'magic' worker 处理程序导入),我正在尝试从另一个项目(在本例中为 angular 项目)运行这个库。
我已正确地将工作程序(和工作程序块)文件复制到我的角度项目的输出中,因为如果我在托管它的同一域中运行我的角度项目,webworker 将正确运行。
这是用于运行工作程序的代码(然后将其添加到 webpack)
var worker = new Worker(new URL('../worker/worker.ts', import.meta.url));
我已经用处理跨域故障转移的存根替换了默认工作程序。
我的问题是我的项目通常不会运行相同的域上下文,而是在不同的域上运行。我可以__webpack_public_path__
在非工作人员代码中设置,以便正确解析网络工作人员 url - 但是网络工作人员只加载一个块加载存根,该存根具有来自 webpack 配置的嵌入式公共路径(如果已设置),但无法更改它在运行时。
我的问题是-有没有一种方法可以编辑该块加载存根以在运行时具有不同的公共路径,或者,有没有一种方法可以更改库与 Angular 项目的 webpacker 的交互方式,以便用于 deploypath 的值被复制到被复制的工作 js 库(通过 angular.json 中的附加资产)?