根据角度文档,我知道生产密钥可以放在“ environment.prod.ts”中。但是,我不太清楚的是在构建阶段何时:
变量是否包含在最终版本中?如果是的话,这是否会使应该被视为秘密的环境变量暴露给公众?
如果构建中包含变量,则部署应用程序的生产版本的正确方法是什么? (假设该应用将托管在Firebase上)
谢谢:)
答案 0 :(得分:1)
第一个问题: 如果您有重要的事情,则必须将其添加到后端而不是前端中,例如,大多数秘密密钥都应该在其中。
秒数问题: 通常我这样做
例如,我在environment.prod.ts中而不是实际值中放置了占位符
{
api_url: '#!api_url!#'
}
因此将使用此值构建它,并且在部署时,我将这些占位符替换为main*.js
文件中的实际值。
如果您已使部署自动化,则Azure Devops
和Octapus
中会有一些任务,请确保Jenkins
也有一些任务。
通过这样做,您还可以将相同的程序包部署到不同的环境,因为在每次部署之前都会用值替换令牌
拥有占位符的另一个原因是您不将其置于源代码控制中,例如,开发团队中没有任何人可以访问prod config,而这由devops工程师掌握。