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

huy*_*itw 5 angular angular-service-worker

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

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

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

我们绝对不想为专用的目标环境重建,因为这违背了 CI/CD 的目的。(一旦该软件包进入 QA 流程,您就不想为生产环境重建软件包)。

所以问题是:ngsw.json在我们修改我们的environment.json(或任何其他)文件后,有没有办法在文件中重新生成哈希?或者这个问题有其他解决方案吗?

Pet*_*erS 5

您是在谈论以下命令吗:

node_modules/.bin/ngsw-config dist src/ngsw-config.json
Run Code Online (Sandbox Code Playgroud)

您可以将命令放入 package.json 中:

  "scripts": {
    "ngsw-config": "node_modules/.bin/ngsw-config dist src/ngsw-config.json"
  }
Run Code Online (Sandbox Code Playgroud)

这将为您重做配置和哈希值。在您的最终命令之后运行它,这在您的 CI 环境中应该是可能的。

另请注意,如果您使用其中之一,它可以采用基本 href 参数。

更多解释在这里:Angular doc