据我了解,Vagrant用于在不同的服务器配置下提供Web应用程序,以便在本地开发期间模仿生产环境,但是建议使用Vagrant来设置实际上不实际的本地开发环境运行Web应用程序本身,但用于编写代码,安装npm包,编译CSS等?
我知道有些人 - 如果不是很多 - 人们在主机上编写代码,但由于我是一个沉重的终端用户,我宁愿将我的本地开发环境转移到VM,然后可以在不同的机器上重新安装在几分钟内。这是否是Vagrant的预期用例之一似乎让我很困惑。
P.S。这个Vagrant VM不会运行任何Web应用程序,即它不会充当Web服务器,而是作为vim,gulp,bower等开发工具的隔离环境。我更愿意启动单独的Vagrant虚拟机来为我的Web应用程序提供服务。
答案 0 :(得分:2)
使用Vagrant运行不包括运行Web服务器的开发环境是我经常使用的东西,尤其是当我的主机不同的操作系统是首选或需要开发时。这可能不是Vagrant最常用的,但它是完全有效的。
例如,我们的某个产品是基于Windows的,因此我们使用VisualStudio,但我们的笔记本电脑都是Mac。我们有一个Vagrant Windows多功能一体机,它包含IDE,git和Web服务器。这使得开发人员快速启动和运行,或丢弃他们的盒子并重新编辑它们是微不足道的。
虽然这很有效,但是单个框的职责太多 - 包括IDE和Web服务器。我们计划将其分解为单独的Vagrant框,一个用于VisualStudio / dev环境,另一个用于更多生产,如Web服务器配置。如果需要,这还允许我们在其他地方重复使用VisualStudio Vagrant框。
除了Windows示例,我还有几个Linux开发框。我有一个golang Vagrant开发盒和一个Kerberos开发盒。虽然我可以让Boxen在我的Mac上为我配置这些,但我觉得拥有专用的Vagrant开发盒更清洁,更容易。