我用 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 目前看起来像这样:
{
"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 目录下的所有文件。如果我这样做,一切正常。