如何在angular 8中的Web Worker中导入typescript模块?

如何在angular 8中的Web Worker中导入typescript模块?,angular,typescript,web-worker,Angular,Typescript,Web Worker,从Angular 8开始,您现在可以从CLI为应用程序生成web worker。我的做法与官方指南一模一样: 而且它工作得很好 但是,一旦我尝试将任何模块导入到app.worker.ts的顶部,使用: import { MyData } from '../shared/shared.module'; 然后我得到编译错误: 是否有其他方法将模块导入web workers?我的问题是,我尝试导入的共享模块是使用ng generate module创建的。在此过程中,angular会自动导入Ng

从Angular 8开始,您现在可以从CLI为应用程序生成web worker。我的做法与官方指南一模一样:

而且它工作得很好

但是,一旦我尝试将任何模块导入到
app.worker.ts
的顶部,使用:

import { MyData } from '../shared/shared.module';
然后我得到编译错误:


是否有其他方法将模块导入web workers?

我的问题是,我尝试导入的共享模块是使用
ng generate module创建的。在此过程中,angular会自动导入
NgModule
CommonModule
,并向导出的类添加带有声明和导入的
@NgModule
。这些允许您访问DOM,而web工作人员不能访问DOM。这就是我所说的编译错误。尽管我没有真正使用这些导入,但这些都不是我将此模块导入webworker的原因。不管怎样,他们都在那里,他们造成了错误


我只需从共享模块中删除
NgModule
CommonModule
的两条导入语句以及整个
@NgModule
,就解决了这个问题。然后,它导入到web worker中时没有任何错误。

作为一个可能有用的注释,我注意到Angular 8中的web workers的一点是,导入任何标记为@Injectable()的内容都会导致这种错误。如果您的模块有任何使用DI的内容,则可能是导致此错误消息的原因。不幸的是,我还没有找到解决这个问题的办法。