我的问题更多的是关于战略而非实际实施。
基本上我想知道为什么我们在服务器上构建MEAN应用程序?通过构建我的意思是获取组件(npm install&& bower install)并完成所有concat和minify的工作。
我正在尝试创建我的构建系统,直到现在我一直在使用John Papa的构建系统版本,但我的构建在服务器上花费的时间越来越长。那么在本地构建所有内容并将其部署到服务器是否有意义?或者我错过了什么?
由于
答案 0 :(得分:1)
构建不应该在运行时发生。除了部署创建的工件之外,您可以部分正确地构建它。
但关键的想法是实施持续集成。意思是构建服务器不在本地计算机上,从SCM获取代码,构建它,运行测试,创建可部署工件并将其存储在某个工件库(例如npm注册表)中。
如果你进一步采取并且你也自动将工件部署到非PROD环境中,你就开始深入研究持续交付空间。
如果此构建和部署管道在每次提交时将工件安装到PROD中,那么您正在持续部署工作。
编辑 - 对评论的反应:
主要想法是连续。意思是,完整版本定期启动,最佳每次提交/ git推送。
如果在您的本地机器上配置了这个并且您是一个人的商店,那可能没问题。但是当我在空闲时间玩各种项目时,我发现每次提交的构建对我的本地机器来说可能是资源密集型的,并且将这个责任留给某些第三方服务(特别是当它是免费的)时很方便。
CI服务器有很多在线解决方案。 我成功使用http://codeship.com和http://drone.io。 http://cloudbees.com为您提供托管Jenkins。对于开源项目,他们是免费的。
如果您的项目不是开源项目,您需要花费一些钱,但对于一个人项目来说应该是便宜的。