我有一个使用vue-cli 3创建和构建的vue.js应用程序。在.env.test
和.env.prod
文件中有一些环境变量。
要构建应用程序,我正在使用运行命令的azure devops构建管道:npm run build:test
或npm run build:prod
这会产生不同的工件,这些工件将输入到天蓝色的devops发布管道中的Stage。
我面临的问题是,我不想为每个环境单独构建。我想构建一个并部署到不同的环境吗?
我如何处理这些变量以针对所有环境构建一次软件包?这是一个好习惯吗?还是我现在应该针对不同的环境使用不同的管道?
应该只有一个build pipeline
可以构建工件,而不管它运行的环境如何。
[.env.prod
可能用于将工件部署到任何环境(Development
,Production
等)]
您必须为配置提供令牌,将在部署/发布阶段将其替换:
env_key1=#{token_key1}#
env_key2=#{token_key2}#
env_key3=#{token_key3}#
因此,只需针对所有环境使用单个配置文件构建项目并发布工件。
我建议多阶段使用单个release pipeline
(Development
,Production
等)。
基于variables groups
提供单独的stages
。它允许将变量分开,按逻辑分组并使用Azure Key Vault
作为秘密来源。变量名称必须等于环境令牌(不带前缀和后缀)。
将所需的任何Task
添加到Stage
中,这将查找并替换令牌。
当前,我使用市场上的Replace Tokens
扩展名。取决于stage
,将替换不同的变量组。 Replace Tokens
任务自动完成所有工作,例如扫描js
文件并替换标记。默认令牌前缀和后缀为:#{
}#
,但是任务允许提供您想要的自定义。