5

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

我有的 :

一个复杂的节点/快速应用程序作为守护进程运行,带有 pm2。

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

  • 用于 db 凭据、服务器端口等的配置文件。

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

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

我想做什么:

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

我的问题 :

  • 我需要将 node_modules 添加到我的 git 存储库中吗?

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

我的缺点:

  • Git新手
  • 没有遵循任何开发指南,因为这一切都是从一个玩具项目开始的。

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

编辑 :

到目前为止,我有:

  • 为初学者阅读Git:权威的实用指南
  • 在 github 上创建了一个 repo,将其克隆并使用 npm install 来获取我的应用程序依赖项。

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

4

2 回答 2

3

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

  1. 克隆存储库
  2. 安装依赖项apt-get install npm ...
  3. 安装节点全局模块npm install -g pm2
  4. 安装节点依赖项npm installnpm update
  5. 复制config.example.jsonconfig.json更改为您的需要
  6. 启动应用pm2 index.js

不应将 node_modules 文件夹添加到 git 存储库中。您应该将所有项目节点依赖项添加到 package.json 文件中,然后npm install/npm update应该完成其余的工作。

于 2013-11-04T17:06:36.547 回答
0

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

您可以找到很多示例集成模块

于 2013-11-04T18:21:39.993 回答