-1

我目前正在将我的项目从 Angular 9 升级到 Angular 13,并偶然发现了 web worker 和 SSR 的问题。我像往常一样初始化网络工作者,除了import.meta.url有一个新部分:

this.worker = new Worker(new URL('./my-worker.worker', import.meta.url), { type: 'module' });

这给了我错误:

仅当“--module”选项为“es2020”、“es2022”、“esnext”、“system”、“node12”或“nodenext”时,才允许使用“import.meta”元属性。

我正在使用@nestjs/ng-universal ,但我很确定这个问题也会出现在常规的 angular-universal 中。问题是我无法从 CommonJS 切换,tsconfig.server.ts因为它会破坏其他服务器部分(我试过)。所以现在我陷入了死胡同,没有新的想法如何解决它。

这个资源似乎最接近我的问题,但不确定它是否正是我的情况: https ://github.com/angular/angular-cli/issues/20877

总体而言,我仅在运行时(即客户端平台)期间需要 Web Worker,但我找不到import.meta在构建期间如何忽略的方法。

PS 如果我理解正确,那么 @angular-devkit/build-angular 的 webpack 配置被配置为忽略 web 工作者以避免我的问题,但是 1)我不确定我是否正确理解了修复的含义;2)我不确定修复是否有效。尽管对 import.meta 进行了测试,但由于某种原因,我在构建过程中遇到了这个问题(也为 ssr 提供服务)。

4

0 回答 0