我现在对制作网络应用感到非常满意。我在后端使用 NodeJs堆栈,并且通常在前端有相当数量的Javascript。我真正缺乏理解的是部署过程。
什么是典型的部署流程?
从我在阅读中收集到的部署/构建过程可以包括几个任务:
这一切都让我有点不知所措。我不知道我是否应该为自己的项目进入这个级别的细节,这似乎是很多工作!我正在使用Sublime Text 2 IDE,它似乎有一个Build Script process,这是否合适? 如何协调所有这些单独的任务?我在理想情况下想象一下,只需轻轻一按,就可以运行。
对不起这么多问题,但我需要知道人们如何学习类似的原则。我的一些要求可能是NodeJS特有的,但无论您正在开发什么样的堆栈,我都确定流程类似。
答案 0 :(得分:2)
首先,让我们将作业分成两部分:前端和后端。对于两者而言,你真的想要某种bulid系统,但他们的目标和范围却截然不同。
对于前端,您希望您的来源尽可能小;连接/缩小JavaScript,CSS和图像。我的一位同事写了一个“编译器”,Assetgraph,为你做这件事。它有一些渗透的学习曲线,但它确实为你的代码创造了奇迹(我们的开发版通常约为20兆,生产~500 k)。
对于后端,您需要包含的,易于管理的某种捆绑包。我们将我们的东西重新打包成debian-packages。只要makefile正确连接,您就可以免费获得大量无聊的构建和部署时间。这是我的(NPM前1.0)Debianizing node programs。我已经在NPM和Github上看到了其他方法,但我没有调查过它们,所以我不能谈论它们的质量。
为了测试/使用/部署,我们使用了一个相当复杂的Debian软件包 - 存档,git-hooks,Jenkins服务器组合。虽然我强烈建议使用平台的本地包管理器来推出东西,但它可能有点太多了。总而言之,我们通常会自动(在每个git push
上)部署暂存,或者为不稳定的代码库自动部署暂存。生产部署总是明确完成。
答案 1 :(得分:2)
对于我使用asereje https://github.com/masylum/asereje
的资产我最近在博文中记录了我的nodejs部署过程: http://pau.calepin.co/how-to-deploy-a-nodejs-application-with-monit-nginx-and-bouncy.html
答案 2 :(得分:1)
构建脚本确实听起来不错。
该构建脚本应该做什么?
这至少是我的意见。
其他资源:
http://howtonode.org/deploying-node-with-spark
http://howtonode.org/deploying-node-upstart-monit
http://dailyjs.com/2010/03/15/hosting-nodejs-apps/
How to deploy node app depencies