我想使用VSTS版本管理将我的Web应用程序部署到我的不同部署位置(dev,test,prod)。目前我使用不同的构建来解决我的问题,但我希望有一个单一的构建,然后我想部署到dev,测试和prod使用Release Management一步一步但总是部署相同的构建。 我的问题是,对于我的AngularCLI应用程序,我在package.json文件中有不同的构建脚本:
"build:prod": "ng build --prod",
"build:dev": "ng build --dev",
"build:test": "ng build --test",
有了这个,我设置了环境中定义的不同环境。*。ts文件。 使用不同的构建我可以使用不同的构建脚本,如npm run build:prod for production。我在webapi上的不同web.config转换中遇到了同样的问题。 在发布管理中使用单个构建和不同步骤的最佳方法是使用正确的配置部署到不同的环境吗?
答案 0 :(得分:0)
我不知道VSTS,但如果阻止你的主要事情是环境* .ts文件静态包含在构建中(并且你需要明确指定使用哪一个),你可以改为在assets文件夹中的conf.json文件中配置,然后在角度应用程序开始检索conf.json文件时进行http调用。
conf.json文件是在部署之后将在ng构建之后修改的文件(由你决定)。
答案 1 :(得分:0)
您可以在构建定义中执行三次构建命令(三个任务):
ng build --prod
ng build --dev
ng build --test
然后在您的发布定义中,添加三个环境以将您的应用部署到不同的环境。
答案 2 :(得分:0)
我们有3个环境,但是我们仅运行ng build
,那么我们如何处理发布环境?
当您运行ng build --test/prod/etc.
时,文件main.bundle.js
会根据环境配置文件在特定位置上获得不同的值,因此在我们的发布管道中,我们根据以下内容替换main.bunble.js
文件上的值:正确的环境。
您可以使用Powershell脚本或Replace task替换这些值。