我正在尝试使用角度客户端和rest api构建一个良好的CI / CD解决方案。我希望有一个“构建一次,部署很多”的角度客户端设置。大多数angular-cli对此非常好,但是我找不到一个好的解决方案是将api url存储在我可以在部署期间操作的地方。
我尝试过的场景:
1)将url存储在environment.env.ts文件中。这种方法的问题是environment.ts文件内置在“ng build”步骤的工件中,因此我无法在部署期间更改url。我可以将所有源存储为构建步骤的工件,然后在部署期间执行“ng build”/ bundle,但这会导致部署步骤非常慢,而且我不会将相同的工件部署到多个环境中。 / p>
2)将url存储在单独的assets / settings.json文件中。这个问题是获取settings.json需要一个异步的http.get调用,我无法找到一个好方法来确保我在收到其他api之前收到了url。
任何人都可以很好地解决这些问题吗?还是一个更好的方法?
答案 0 :(得分:1)
根据想法,您可以将env设置放入env文件中。在构建时,从ci / cd setup中选择正确的env over命令参数。
ng build --env=prod
在此处查看详细信息: Link
作为替代方案,您可以创建第二个git repo来保存env配置文件,并在ci / cd进程构建开始之前替换它们。