场景/当前状态:我有一个在Azure DevOps上的Angular 5项目。我从同一分支(主机)推送到Dev / Test和Prod。我为自己的构建设置了environment.ts文件,因此,当我从master构建项目时,它会根据构建环境选择BaseAPIURL。我的master分支始终使用使用bcp "select 'col1', 'col2', 'col3' union all select cast(id as varchar(10)), name, cast(someinfo as varchar(28)) from Question1355876" queryout myTable.csv /SmyServer01 /c /t, -T
111
的命令。
我要实现的目标:我想针对不同的环境制定一份构建计划和多个“发布”计划。默认情况下,在构建时,所有角度代码都将转换为我的“ dist”文件夹中的.js文件。环境变量位于exec master.dbo.xp_cmdshell 'bcp "SELECT ''cast(Company_ID as int)'', ''cast(MatterMark_URL as nvarchar(150))'', ''cast(Company_Name as nvarchar(100))'', ''cast(Domain as nvarchar(150))'' UNION ALL SELECT DISTINCT cast(id as int), cast(url as nvarchar(150)), cast(company_name as nvarchar(100)), cast(domain as nvarchar(150)) FROM ##jsonparsed" queryout C:\Users\ebarnes\etl_project\company_data.csv -c -T -t'
中。我如何在发布期间转换/修改该文件?
答案 0 :(得分:1)
我同意 Sergey ,不建议这样做,但过去我是在一个有角度的项目中做到的。
很简单,安装Replace Tokens扩展名,在您的environment.ts
文件中放置一个占位符以表示值,例如:
baseUrl = __baseUrl__
在发布管道中,为每个具有不同值的环境添加变量baseUrl
。
现在,在每个发布环境(阶段)中,添加替换令牌任务并将其配置为搜索模式__{variable}__
:
对所有变量执行此操作(只需将其添加到“变量”标签中,并将占位符放入文件中即可)。
如果要使用APP_INITIALIZER
,可以阅读this帖子,其中介绍了如何使用Azure DevOps进行热解释。