我们有一个使用Angular Service Worker的Angular应用程序。
众所周知,该服务工作者将缓存文件中的内容哈希与ngsw.json
文件中的哈希进行比较。
现在,我们已经设置了持续的集成和交付(使用Azure DevOps,但没有关系),在交付阶段,我们正在修改environment.json
文件中的某些设置(例如配色方案,API url ...所有与部署目标有关)。问题在于,通过修改该json文件,哈希不再与ngsw.json
文件中该文件的哈希匹配。
我们绝对不希望针对专用目标环境进行重建,因为这会破坏CI / CD中的目标。 (一旦该软件包进入质量检查流程,您就不想为生产环境重建该软件包)。
所以问题是:修改了我们的ngsw.json
(或任何其他)文件后,是否有办法重新生成environment.json
文件中的哈希?还是对此问题有其他解决方案?
最佳答案
您是否在谈论以下命令:
node_modules/.bin/ngsw-config dist src/ngsw-config.json
您可以将命令放在package.json中:
"scripts": {
"ngsw-config": "node_modules/.bin/ngsw-config dist src/ngsw-config.json"
}
这会重做配置并为您提供哈希值。
在最终命令后运行它,这应该在您的CI环境中是可能的。
还请注意,如果您使用其中之一,则可以使用基本href参数。
此处更多说明:Angular doc