为 webworker 块加载存根设置运行时 public 路径

set runtime public path for webworker chunkloading stub

我有一个 webpack 库,其中包含一个 webworker(通过 'magic' worker 处理程序导入),我正在尝试从另一个项目 运行 这个库(在本例中是 angular 项目).

我已经正确地将 worker(和 worker 块)文件复制到我的 angular 项目的输出中,因为如果我 运行 我的 angular 项目在托管它的同一域中。

这是用于 运行 worker 的代码(然后将其添加到 webpack)

var worker = new Worker(new URL('../worker/worker.ts', import.meta.url));

并且我已将默认工作器替换为处理跨域故障转移的存根。

我的问题是我的项目通常不会 运行 相同的域上下文,而是 运行 在不同的域上。我可以在非工作者代码中设置 __webpack_public_path__,以便网络工作者 url 得到正确解析 - 但是网络工作者只是加载一个块加载存根,其中包含嵌入的 public 路径(如果已设置)来自 webpack 配置,但无法在 运行 时间更改它。

我的问题是 - 有没有一种方法可以编辑该块加载存根以在 运行 时具有不同的 public 路径,或者有没有一种方法可以改变库与angular 项目的 webpacker,以便将用于 deploypath 的值复制到正在复制的 worker js 库(通过 angular.json 中的附加资产)?

查看代码后发现似乎没有内置方法可以执行此操作。我最终制作了一个基于 https://github.com/agoldis/webpack-require-from 的插件,以便为我的特定案例工作