如何在 Angular 8 中的 Web Worker 中导入 TypeScript 模块?

VIB*_*azo 4 web-worker typescript angular

从 Angular 8 开始,您现在可以从 CLI 为您的应用程序生成 Web Worker。我完全按照官方指南进行操作:

https://angular.io/guide/web-worker

而且效果很好。

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

import { MyData } from '../shared/shared.module';
Run Code Online (Sandbox Code Playgroud)

然后我得到编译错误: 在此输入图像描述

还有其他方法可以将模块导入网络工作者吗?

VIB*_*azo 5

我的问题是我尝试导入的这个共享模块是用ng generate module. 在此过程中,Angular 会自动导入NgModuleCommonModule并将@NgModulewith 声明和导入添加到导出的类中。这些使您可以访问 DOM,而 Web Worker 无法访问 DOM。这就是我遇到的编译错误所讨论的内容。即使我并没有真正使用这些导入,并且这些都不是我将此模块导入到网络工作者中的原因。无论如何,他们就在那里并且导致了错误。

我通过简单地从我的共享模块中删除 2 个 import 语句NgModule以及CommonModule整个语句来修复它@NgModule。然后它顺利地导入到 Web Worker 中,没有任何错误。