M Y*_*Yil 8 environment-variables azure azure-devops azure-pipelines angular
此时,当 Master 分支发生提交时,构建管道将根据“ng build --prod”生成一个工件,因此该工件使用项目的生产配置。之后,工件将被部署到测试和生产环境。
对于测试环境,我希望代码使用“environment.dev.ts”并用于生产“environment.prod.ts”。我怎样才能做到这一点?
Vol*_*hat 20
有很多方法。我正在使用“令牌”来做我的生产环境看起来像这样
export const environment = {
production: true,
host: 'https://#{{FLYMARK_MAIN_DOMAIN}}#',
stripeKey: '#{{STRIPE_KEY}}'
};
Run Code Online (Sandbox Code Playgroud)
所以当我构建我的版本时不可用,因为我有令牌而不是变量。
然后当我发布时,我确实有步骤替换令牌。这需要在部署脚本之前运行(只需根据您的需要进行修改)
steps:
- task: qetza.replacetokens.replacetokens-task.replacetokens@2
displayName: 'Replace tokens in **/Scripts/widgets/**/*.js'
inputs:
targetFiles: '**/Scripts/widgets/**/*.js'
actionOnMissing: fail
tokenPrefix: '#{{'
tokenSuffix: '}}#'
Run Code Online (Sandbox Code Playgroud)
此任务将找到我的发布变量,如 FLYMARK_MAIN_DOMAIN、STRIPE_KEY 并在我的 js 文件中替换。
主要好处是您构建一次,只需更换令牌即可部署到任何地方
附注。假设您有开发、分期和生产。现在要开发,您在构建后部署,这是由新推送到 master 触发的,在批准时分阶段发布(azure 管道支持)

所以现在假设您在开发版本 100 中,您决定将其推入暂存阶段,并且您的团队开始测试。3 天后,您的开发团队推动掌握大量新东西,因此在开发上您拥有版本 123,但在登台时您仍然拥有版本 100。在登台中团队测试后,您将把相同版本推向生产,因为您有信心,如果您愿意的话当您准备好部署到生产环境时,请为环境使用单独的构建,您在 master 中有很多新东西,也许您没有信心将其推送到生产环境。同样,每个案例都是不同的,有很多方法可以做到,我只是喜欢这种方法,因为它适合我的项目。
| 归档时间: |
|
| 查看次数: |
6637 次 |
| 最近记录: |