Hur importerar man ett TypeScript-modul inuti en Web Worker i Angular 8?
Sedan Angular 8 kan du nu generera webbarbetare till din app från CLI. Jag gjorde precis så som den officiella guiden:
https://angular.io/guide/web-worker
Och det fungerar perfekt.
Men så fort jag försöker importera någon modul högst upp i app.worker.ts med:
import { MyData } from '../shared/shared.module';
Då får jag kompileringsfel:
Finns det något annat sätt att importera moduler till webbarbetare?
Svar #1
Mitt problem var att den här delade modulen jag försökte importera skapades med ng generate module. På så sätt importerar Angular automatiskt NgModule, CommonModule och lägger till en @NgModule med deklarationer och importer till den exporterade klassen. Dessa ger dig tillgång till DOM, och webb-arbetare kan inte ha tillgång till DOM. Vilket är vad kompilationsfelet jag fick handlade om. Även om jag egentligen inte använde dessa importer och ingen av dessa var anledningen till att jag importerade denna modul till webb-arbetaren. De var där ändå och de orsakade felet.
Jag fixade det genom att helt enkelt ta bort de 2 importuttalandena för NgModule, CommonModule och hela @NgModule från min delade modul. Sedan importerades det utan problem till webbarbetaren utan några fel.
