Mr.*_*ars 4 hash gulp purifycss angular angular-service-worker
当我使用 Service Worker 构建 Angular 应用程序时,它会创建一个包含每个文件的哈希值的哈希表,以检测应用程序的新版本何时可用。该哈希表位于 ngsw.json 中。
这是哈希值的示例。

如果我想使用 PurifyCSS 清理未使用的 css,则 dist/styles.*.css 将更改文件内容及其哈希值,但 ngsw.json 具有旧哈希值。
在这种情况下,Angular Service Worker 将失败,因为存在哈希不匹配。
我怎样才能避免这种情况呢?运行 PurifyCSS 后是否应该在 ngsw.json 中手动更新哈希?是否有某种机制可以自动更新此值,或者可以在 angular-cli 为每个文件生成哈希之前执行 PurifyCSS 吗?
这个问题通常针对对服务工作者缓存的 dist 文件进行的任何类型的修改,因为哈希会改变,因此会出现哈希不匹配。这意味着 Service Worker 将无法工作。
先感谢您。
我发现 Angular 官方文档中出现了一些非常有用的内容。对 dist 文件夹中的文件进行所有所需的修改后,您可以使用简单的命令重新创建 ngsw.json 文件。
./node_modules/.bin/ngsw-config ./dist/<project-name> ./ngsw-config.json [/base/href]
Run Code Online (Sandbox Code Playgroud)
这将重新生成 ngsw.json 并且 Service Worker 再次正常工作。
https://angular.io/guide/service-worker-config
| 归档时间: |
|
| 查看次数: |
1810 次 |
| 最近记录: |