我对 Azure 和 Heroku 都不熟悉,所以我无法就这些特定的部署选项提供任何想法。
我正在使用(4 个专用服务器,其中 2 个仅用于提供静态文件),构建捆绑和缩小的 javascript 文件(用于前端)并将所有这些文件添加到主存储库的选项有几个优点
- 您只需要运行一次(无论是在您的开发机器上还是在登台服务器上,无论您想要什么方式)。这在您必须运行多个静态服务器时特别有用,因为您不必在每个服务器上运行构建命令。有人可能会争辩说,他们可以使用类似
Glusterfs
的方法将文件从一台静态服务器同步到所有其他服务器,并且构建过程只需要运行一次。然而,当涉及到这种设置时,情况就完全不同了
- 它使您的部署过程变得简单,只需拉取新代码并在必要时重新启动服务器(假设您有一些机制来增加静态文件版本,以便您的所有客户端都将收到最新版本)
- 避免对生产服务器的不必要依赖。这对某些人来说可能听起来很奇怪,但我只是不想在我的生产服务器上安装任何额外的库,除非它们是绝对必要的。随着构建过程在我的开发机器上本地运行,我的生产服务器只有运行生产代码所需的东西,没有别的
但是这种方法也有一些缺点:
- 当您的团队中有多个开发人员(意外地)运行构建过程并提交代码时,您将有一个疯狂的冲突列表。但是,它可以通过在合并其他人的所有更改后再次运行构建过程来解决。这更多的是关于工作流程
- 您的存储库会更大。考虑到我的捆绑和缩小文件的额外 MB 数,我个人认为这不是一个大问题。如果您的前端 javascript 足够大,足以成为一个问题,那就是另一回事了