适用于所有环境的一个 build\release 与适用于所有环境的多个 biulds\releases

Posted

技术标签:

【中文标题】适用于所有环境的一个 build\\release 与适用于所有环境的多个 biulds\\releases【英文标题】:One build\release for all environments vs multiple biulds\releases for all environments适用于所有环境的一个 build\release 与适用于所有环境的多个 biulds\releases 【发布时间】:2019-03-21 09:14:46 【问题描述】:

在我目前的设置中,这是正在发生的事情,

构建开发 构建 Uat 构建生产

然后,

发布开发 释放 Uat 发布生产

现在的问题是我们只有 1 个代理(不知道为什么),这种情况并不经常发生,但有时我们需要快速构建和发布热修复程序,但是每个 BUILD 大约需要 10 分钟以上并且无法运行与其他构建平行。发行版也一样。因此,将修补程序部署到生产只需要 2 小时左右的痛苦过程。

需要单独构建:

在构建时,我们像这样指定构建命令,

ng build -configuration --uat

ng build -configuration --prod

为什么我们不应该为所有环境创建一个构建\发布?假设有办法为不同的配置创建不同的工件,或者我们可能只是在 azure 或类似的东西上使用应用程序设置。

【问题讨论】:

【参考方案1】:

虽然这个问题主要倾向于获得基于意见的答案 (more info here),但我会继续回答它。

就我而言,您应该只有一个构建并且让工件在所有*环境中传播。二进制文件(工件)不会改变,只有它们的配置会改变。这是您确保在不同环境中运行的代码之间没有任何差异的唯一方法。

 * 您的开发环境可能/可以是一个特殊的 cookie。某些开发环境使开发人员能够进行远程调试和此类任务,因此在您的开发环境上构建 Debug 是有意义的。

【讨论】:

以上是关于适用于所有环境的一个 build\release 与适用于所有环境的多个 biulds\releases的主要内容,如果未能解决你的问题,请参考以下文章

Nodejs找不到模块'../build/Release/canvas'

Centos 7.2 安装 Python 3.5(适用于Python 3所有版本安装)

Valgrind 使我的程序的所有线程都处于休眠状态

PHP:包含适用于Dev和Live的路径

错误:在 Mac 上找不到模块“../build/Release/bson”

GroupBy 转换运算符仅适用于本地环境