我的 Angular 应用程序中已经有了 Workers。但我正在尝试创建一个共享工作者,但它失败了,说“无法获取工作者脚本”。在控制台中。
const worker = new SharedWorker('../../../workers/my.shared.worker', { name: 'mySharedWorker', type: 'module' });
如果我用 Worker 替换 SharedWorker - 它可以完美运行。
当然,我根据需要制作了一切。创建了一个附加.tsconfig
文件:
/// tsconfig.worker.json
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/worker",
"lib": [
"es2018",
"webworker"
]
},
"include": [
"src/workers/*.worker.ts"
]
}
并添加webWorkerTsConfig
到angular.json
配置中:
projects.myProject.architect.build.options.webWorkerTsConfig: "tsconfig.worker.json"
我发现了 Nikita Barsukov 的这篇文章,但它仅在您的 Worker 以单个文件存储在assets
文件夹中时才有效。但是我的 SharedWorker 包含十几个 .ts 文件,应该像普通 Worker 一样打包。