我使用node.js开发Web应用程序和网站
但是当我想将应用程序部署到某个Pass时,我必须自己手动优化应用程序
喜欢
这个工作流程让我感到不安,所以我的问题是,是否有一些工具或模块可以优化此工作流程,或者自动完成此工作
您的部署策略是什么?
最佳答案
您需要的是构建工具。在Java中,ant和maven是流行的选择。在node.js世界中,有大量的构建工具。我最熟悉的两个是grunt和buildr(完整披露:我是buildr的维护者)。
这两种工具都可以归结为您编写一个配置文件,该文件指定您的源文件/目录以及您要对它们进行的操作,包括缩小,串联,Saas或Stylus编译等选项。
https://github.com/gruntjs/grunt
https://github.com/balupton/buildr.npm
对于部署工作流,我建议执行以下步骤:
对于应用程序,我建议删除远程系统上的安装目录,并用SCP代替它的新版本。假定存在负载平衡器。
根据您的应用程序,这可能很简单,可以使用shell脚本编写脚本,也可以使用capistrano或Fleet之类的工具。
https://github.com/capistrano/capistrano
https://github.com/substack/fleet
对于一个简单的网站,我建议您看一下文件差异,例如rsync。我将rsync用于我的个人网站,因为它只是静态内容,我不必担心依赖关系等。
所以发布可能会像
$ git clone git://github.com/whatever.git && (cd whatever && buildr && rsync -avz --delete -e ssh <remote server>:webroot)
或对于应用程序,自动化程度更高:
$ git clone git://github.com/whatever.git && (cd whatever && buildr && make upload)
对于主要应用程序:
$ buildApp && deployApp
使用buildApp和deployApp作为脚本,其中包含构建和部署所需的所有命令,日志记录,配置等。