Javascript 角度-部署期间的生产环境变量
根据angular文档,我了解生产密钥可以放在“environment.prod.ts”中。然而,我不太清楚的是,在构建阶段,什么时候是:Javascript 角度-部署期间的生产环境变量,javascript,angular,Javascript,Angular,根据angular文档,我了解生产密钥可以放在“environment.prod.ts”中。然而,我不太清楚的是,在构建阶段,什么时候是: 最终构建中是否包含变量?如果是的话,这难道不会让原本应该是秘密的env变量公开吗 如果构建中包含这些变量,那么部署应用程序的生产版本的正确方法是什么?(假设该应用程序将托管在firebase上) 谢谢:)关于第一个问题: 如果你有一些关键的东西,你必须把它添加到你的后端,而不是前端,例如,大多数密钥都应该在那里 第二个问题: 通常我这样做 例如,在envir
{
api_url: '#!api_url!#'
}
因此它将由这些值构建,在部署时,我将在main*.js
文件中用实际值替换这些占位符
如果您已经自动化了部署,那么在azuredevops
和Octapus
中会有一些任务,当然Jenkins
也应该有一些任务
通过这样做,您也将能够将相同的包部署到不同的环境中,因为在每次部署之前都会用值替换令牌
拥有占位符的另一个原因是您没有将他们保留在源代码管理中,例如,开发团队中的任何机构都无权访问prod配置,并且它掌握在devops工程师手中除了Reza给出的漂亮答案之外,这里还有一个类似的问题,关于这个主题有一篇非常好的文章。使用这样的占位符有什么好处?@Cerbrus您可以将同一个包部署到不同的环境中,例如,同一个包转到
QA
,如果它被签出,则转到UAT
,然后再转到Prod
。由于替换值发生在每个部署上,而不是在构建中,environment..ts
的重点不在于拥有用于不同环境的单独构建配置,因此您不必进行“手动”(自动)替换?@Cerbrus是的,这是另一种方式,其缺点是将值保留在源代码管理中,而且构建时间会增加,因为你需要为多个环境构建多次,最后一段更有意义,但是我会考虑拥有一个单独的配置文件…