我正在app.component.ts
中注册我的角度服务工作者(来自@ angular / PWA)。我无法确定如何在ngsw-worker.js
中注册app.component.spec.ts
。作为生产版本的一部分,它位于dist文件夹中(仅适用于--prod)。我在测试文件中的导入如下所示:
ServiceWorkerModule.register('ngsw-worker.js', { enabled: true }),
错误消息:
Failed to register a ServiceWorker for scope ('http://localhost:<port>/') with script ('http://localhost:<port>/ngsw-worker.js'): A bad HTTP response code (404) was received when fetching the script.
ng test
似乎没有包含--prod
选项
由于它是ngsw-worker
,因此在安装过程中使用this.scope.skipWaiting()
,在激活过程中使用yield this.scope.clients.claim()
,因此似乎在单元测试中正确注册sw应该可以解决问题。
我已经浏览了devtools中的localhost目录,但是在任何地方都看不到sw。
问题:鉴于以上所述,如何注册ngsw-worker.js以进行测试?
答案 0 :(得分:0)
首先构建产品,然后运行
http-server -p 8080 -c-1 dist/your-projectname
并打开隐身标签,然后转到
localhost:8080
并测试您的服务人员
答案 1 :(得分:0)
更加精确
您必须首先下载http-server,它是“简单的,零配置的命令行http服务器”。
npm install --global http-server
的笔记本电脑上安装http服务器ng build --prod
构建项目http-server -p 8080 -c-1 dist/<project-name>
-c-1 =禁用缓存 http://localhost:8080/
以隐身模式打开浏览器有关它的更多信息:https://angular.io/guide/service-worker-getting-started#serving-with-http-server