角度 12 网络工作者 404

joa*_*m_b 1 web-worker angular

我已将我的项目从 Angular 11 更新到 Angular 12,除了我的网络工作者之外,一切都正常工作。当我进行构建时,worker.ts 文件不会复制到输出目录,并且在 ngserve 中加载时,我会收到工作文件的 404 错误。

\n

在“build”下的 angular.json 中,我有这个:

\n
  "webWorkerTsConfig": "tsconfig.worker.json"\n
Run Code Online (Sandbox Code Playgroud)\n

我的 tsconfig.worker.json 包含以下内容:

\n
 {\n  "extends": "./tsconfig.json",\n  "compilerOptions": {\n    "outDir": "./out-tsc/worker",\n    "lib": [\n      "es2018",\n      "webworker"\n    ],\n    "types": []\n  },\n  "include": [\n    "src/**/*.worker.ts"\n  ]\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我没有\xc2\xb4t 在这里更改任何内容......我如何追踪为什么它不\xc2\xb4t 包含worker.ts 文件?

\n

joa*_*m_b 6

好的,我发现了问题:我曾经像这样创建工作人员(并且它适用于 Angular 11):

new Worker('/src/app/shared/workers/get-all-files.worker.ts',
        { name: 'getEntityMetricsLeg', type: 'module' })
Run Code Online (Sandbox Code Playgroud)

当我更改为以下内容后,一切又恢复正常了:

new Worker(new URL('/src/app/shared/workers/get-all-files.worker.ts', import.meta.url),
        { name: 'getEntityMetricsLeg', type: 'module' })
Run Code Online (Sandbox Code Playgroud)