我正在尝试使用angular客户端和rest api构建一个好的CI/CD解决方案。我希望我的angular客户端有一个“一次构建,多次部署”的设置。大多数情况下,angular-cli可以很好地解决这个问题,但我找不到一个好的解决方案,因为它将api url存储在某个我可以在部署期间操作的地方。
我尝试过的场景如下:
1)将url存储在environment.env.ts文件中。这种方法的问题是,environment.ts文件内置于"ng build“步骤的工件中,因此我无法在部署期间更改url。我可以将所有源代码存储为构建步骤的工件,然后在部署期间执行"ng /bundle“构建,但这会导致部署步骤非常慢,并且我不会真正将相同的工件部署到多个环境中。
2)将url存储在单独的assets/settings.json文件中。这样做的问题是,获取settings.json需要一个异步http.get调用,而我找不到一个好方法来确保我在调用rest api之前已经收到了url。
对于这两个问题,有人有好的解决方案吗?或者是一种更好的方法?
发布于 2017-11-23 19:23:51
您可以将env设置放入env文件中。在构建时,从ci/cd设置中选择正确的env,而不是命令参数。
ng build --env=prod在这里查看详细信息:Link
作为替代方案,您可以创建第二个git存储库来保存环境配置文件,并在ci/cd进程上开始构建之前替换它们。
https://stackoverflow.com/questions/47454185
复制相似问题