WebWorker 不包括在内。 ...是 TypeScript 编译的一部分,但未使用

问题描述 投票:0回答:0

我用 Lerna 创建了一个带有两个包的 Monorepo:

+ packages: 
  + background-processing
    + src
      - background-worker.ts
      - background-processing.ts
    - tsconfig.worker.json
  + angular-app
    + src
    - tsconfig.worker.json

后台处理应用程序正在创建这样的 WebWorker:

this.backgroundWorker = new Worker(new URL('./background-worker.worker', import.meta.url));

angular-app 使用后台处理包(包含在 package.json 的依赖项下)

当我使用

ng serve
启动应用程序时,对于在 background-worker.worker.ts 文件中使用的每个文件,我都会收到以下警告:

Warning: ... is part of the TypeScript compilation but it's unused. 

因为警告仅针对在 background-worker.worker.ts 文件中使用的文件,我认为工作人员没有以正确的方式包含在内。这就是为什么我现在想:

  • 我必须在哪里使用 tsconfig.worker.json - 在后台处理包中还是在 angular-app 包中?
  • 如何以正确的方式包括工人?

我的 tsconfig.worker.json 目前看起来像这样:

{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./out-tsc/worker",
    "lib": ["es2018", "webworker"],
    "types": ["dom-webcodecs"]
  }, 
  "include": ["src/**/*.worker.ts"]
}

在编译过程和警告之后,angular 开始了,但是当我打开网页时,我得到以下错误:

Failed to construct 'Worker': Script at 'file:///***/***/***/packages/background-processing/src/background-worker.worker' cannot be accessed from origin 'http://localhost:4200'.

但我认为错误取决于之前的警告。

我希望给定的信息足够了——如果不够,请告诉我!

我已经尝试在没有 monorepo 的情况下构建应用程序——一个简单的 Angular 应用程序,其中包含 src 目录下的所有文件。如果我这样做,一切正常。

typescript web-worker tsconfig lerna
© www.soinside.com 2019 - 2024. All rights reserved.