构建后或部署期间在ngsw中重新生成内容哈希

时间:2019-01-08 12:35:41

标签: angular angular-service-worker

我们有一个使用Angular Service Worker的Angular应用程序。

我们知道,该服务工作者将缓存文件中的内容哈希与ngsw.json文件中的哈希进行比较。

现在,我们已经设置了持续的集成和交付(使用Azure DevOps,但这无关紧要),在交付阶段,我们正在修改environment.json文件中的某些设置(例如配色方案, API网址...全部与部署目标相关)。问题是,通过修改json文件,哈希不再与ngsw.json文件中该文件的哈希匹配。

我们绝对不希望针对专用目标环境进行重建,因为这会破坏CI / CD中的目标。 (一旦包装进入质量检查流程,您就不想为生产环境重建该软件包。)

所以问题是:在我们修改了ngsw.json(或任何其他)文件之后,是否有一种方法可以重新生成environment.json文件中的哈希?还是对此问题有其他解决方案?

1 个答案:

答案 0 :(得分:0)

您是否在谈论以下命令:

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