适合部署节点应用程序的工作流程

时间:2013-11-04 14:53:37

标签: git node.js deployment

我在过去几个月里一直在学习Node,现在有一个复杂的应用程序。我的问题是,我想让它重复使用,因为我是一个完整的菜鸟,我从一开始就没有想到这一点。

我有什么:

使用pm2作为守护程序运行的复杂节点/快速应用程序。

  • 许多子进程脚本,有些在Node中,有些使用casperjs / phantomjs

  • 数据库凭据,服务器端口等的配置文件

  • 许多npm依赖项,一些用于应用程序本身,一些仅由子进程使用。 应用程序本身运行正常,每个路径都存储在配置文件中,因此部署不应太难。

  • package.json文件中的所有npm依赖项

我想做什么:

  • 将应用程序存储在GIT仓库中,以便我可以在EC2实例上快速设置它。
  • 安装pm2,phantomjs / casperjs,所有node_modules并以简单的方式创建应用程序的树状结构(包括一些用于应用程序创建的文件的空文件夹),因此那些不了解应用程序的人可以获得它快速运行。

我的问题:

  • 我是否需要将node_modules添加到我的git repo中?

  • 如何以最简单的方式集成应用程序部署,安装依赖项以及安装pm2,phantom和casper?我不介意制作一个剧本,但我真的不知道从哪里开始或最佳实践。我在网上看到的大部分内容都与nodejitsu / heroku有关,并不适用。

我的缺点:

  • Git新手
  • 没有遵循任何开发指南,因为它始于一个玩具项目。

希望我的问题是可以理解的,谢谢大家!

编辑:

我到目前为止:

仍在尝试弄清楚如何包含外部依赖项。

2 个答案:

答案 0 :(得分:3)

部署的一种方法是添加命令的安装列表:

  1. clone repository
  2. 安装依赖项apt-get install npm ...
  3. 安装节点全局模块npm install -g pm2
  4. 安装节点依赖项npm installnpm update
  5. config.example.json复制到config.json并将其更改为您的需求
  6. 启动应用pm2 index.js
  7. 不应将node_modules文件夹添加到git repo。您应该将所有项目节点依赖项添加到package.json文件中,npm install / npm update应该完成其余的工作。

答案 1 :(得分:0)

您可以使用Capistrano轻松完成所有部署任务。它是用Ruby编写的,但您可以使用它来部署任何您想要的东西,包括Node.js应用程序。

您可以找到很多examplesintegration modules