ngsw/state 虚拟目录下的 Angular Service Worker 调试信息?

bal*_*teo 3 angular-service-worker

我指的是 Angular Service Worker 和调试(请参阅以下链接:https : //angular.io/guide/service-worker-devops#locating-and-analyzing-debugging-information)。

引用文档:

Angular Service Worker 在ngsw/虚拟目录下公开调试信息 。目前,单个公开的 URL 是 ngsw/state.

我一直无法ngsw/statehttps://angular.io/progressive web app上找到调试信息:我尝试ngsw/state按如下方式附加:https : //angular.io/ngsw/state无济于事。我ngsw/state在源 devtools 选项卡中都找不到参考。更重要的是:什么是虚拟目录以及在哪里可以找到它?

有人可以建议吗?

bal*_*teo 5

出于某种原因,服务工作者似乎没有在https://angular.io渐进式 Web 应用程序上激活,尽管我可能是错的(请参阅:https : //github.com/angular/angular/blob/master/aio/。 angular-cli.json#L25)。

但是,通过使用 angular CLI 生成服务工作者应用程序:

ng new mySwProject --service-worker
Run Code Online (Sandbox Code Playgroud)

然后在生产模式下构建它:

cd mySwProject
ng build --prod
Run Code Online (Sandbox Code Playgroud)

并使用http-server为其提供服务

cd dist
http-server -p 8080  
Run Code Online (Sandbox Code Playgroud)

可以使用以下网址查看 Service Worker 信息:

http://localhost:8080/ngsw/state
Run Code Online (Sandbox Code Playgroud)

输出:

NGSW Debug Info:

Driver state: NORMAL ((nominal))
Latest manifest hash: e60b43d83d323671c26f71fba9da395abdb4c01b
Last update check: 14s821u

=== Version e60b43d83d323671c26f71fba9da395abdb4c01b ===

Clients: 

=== Idle Task Queue ===
Last update tick: 14s616u
Last update run: never
Task queue:



Debug log:
Run Code Online (Sandbox Code Playgroud)

仅供参考:ng serve如文档中所述,不适用于 Service Worker:

由于 ng serve 不适用于 service worker,您必须使用真实的 HTTP 服务器在本地测试您的项目。在专用端口上进行测试是个好主意。