Angular-部署期间的生产环境变量

时间:2020-03-04 14:52:16

标签: javascript angular

根据角度文档,我知道生产密钥可以放在“ environment.prod.ts”中。但是,我不太清楚的是在构建阶段何时:

  1. 变量是否包含在最终版本中?如果是的话,这是否会使应该被视为秘密的环境变量暴露给公众?

  2. 如果构建中包含变量,则部署应用程序的生产版本的正确方法是什么? (假设该应用将托管在Firebase上)

谢谢:)

1 个答案:

答案 0 :(得分:1)

第一个问题: 如果您有重要的事情,则必须将其添加到后端而不是前端中,例如,大多数秘密密钥都应该在其中。

秒数问题: 通常我这样做

例如,我在environment.prod.ts中而不是实际值中放置了占位符

{
   api_url: '#!api_url!#'
}

因此将使用此值构建它,并且在部署时,我将这些占位符替换为main*.js文件中的实际值。

如果您已使部署自动化,则Azure DevopsOctapus中会有一些任务,请确保Jenkins也有一些任务。

通过这样做,您还可以将相同的程序包部署到不同的环境,因为在每次部署之前都会用值替换令牌

拥有占位符的另一个原因是您不将其置于源代码控制中,例如,开发团队中没有任何人可以访问prod config,而这由devops工程师掌握。