正确的工作stream程部署节点应用程序
我在过去的几个月里一直在学习Node,现在有一个复杂的应用程序。 我的问题是,我想使它可重复使用,因为我是一个完整的noob,我从一开始就没有想到这一点。
我拥有的 :
一个复杂的节点/快速应用程序作为守护程序与pm2一起运行。
-
大量的subprocess脚本,一些在Node中,一些使用casperjs / phantomjs
-
数据库凭证的configuration文件,服务器端口等
-
许多npm的依赖关系,一些为应用程序本身,一些只用于subprocess。 应用程序本身运行良好,每条path都存储在configuration文件中,因此部署不应太难。
- package.json文件中的所有npm依赖关系
我想要做什么:
- 将应用程序保存在GIT仓库中,以便在EC2实例上快速设置。
- 安装pm2,phantomjs / casperjs,所有node_modules,并以简单的方式创build应用程序的树状结构(包括一些用于应用程序创build文件的空文件夹),这样,不了解应用程序的人就可以得到它跑得快
我的问题 :
-
我需要将node_modules添加到我的git仓库吗?
-
我怎样才能以最简单的方式整合应用程序的部署,安装依赖和安装pm2,幻像和casper? 我不介意写一个脚本,但我不知道从哪里开始或最佳实践。 我在网上看到的大多数是关于nodejitsu / heroku,不适用。
我的缺点:
- Git新手
- 没有遵循任何发展的指导方针,因为这一切都是从玩具项目开始的。
希望我的问题是可以理解的,谢谢大家!
编辑:
到目前为止我有:
- 阅读Git的初学者:明确的实践指南
- 在github上做了一个回购,克隆它,并使用npm install来获得我的应用程序依赖。
仍试图弄清楚如何包含外部依赖关系。
一种部署方式是添加命令的安装列表:
- 克隆库
- 安装依赖项
apt-get install npm ...
- 安装节点全局模块
npm install -g pm2
- 安装节点依赖关系
npm install
和npm update
- 将
config.example.json
复制到config.json
并将其更改为您的需要 - 启动应用程序
pm2 index.js
node_modules文件夹不应该被添加到git仓库。 你应该把你所有的项目节点依赖关系添加到package.json文件中,而npm install
/ npm update
应该完成剩下的工作。
您可以使用Capistrano轻松完成所有的部署任务。 它是用Ruby编写的,但是可以用它来部署任何你想要的,包括Node.js应用程序。
你可以find很多的例子和集成模块 。