我正在app.component.ts
中注册我的Angular服务工作者(@angular/PWA)。我无法确定如何在app.component.spec.ts
中注册ngsw-worker.js
。它位于dist文件夹中,作为生产构建的一部分(只有通过--prod才可用)。我的测试文件中的导入如下:
ServiceWorkerModule.register('ngsw-worker.js', { enabled: true }),
错误消息:
无法为范围('http://localhost:<port>/)注册ServiceWorker,并使用脚本('http://localhost:<port>/ngsw-worker.js'):在获取脚本时收到了错误的HTTP响应代码(404)。
看起来像是ng test
没有包括--prod
选项。由于它是
ngsw-worker
,因此在安装期间使用this.scope.skipWaiting()
,并在激活期间使用yield this.scope.clients.claim()
,因此正确地在单元测试中注册sw应该可以解决问题。我已经在devtools中查看了本地主机目录,但是我没有在任何地方看到sw。
问题:鉴于以上情况,如何为测试目的注册ngsw-worker.js?