2013-11-04 129 views
5

過去幾個月我一直在學習Node,現在有一個複雜的應用程序。我的問題是,我想讓它可重用,而且我是一個完全的noob,我從一開始就沒有想到這一點。部署節點應用程序的正確工作流程

我有什麼:

一個複雜的節點/快速運行的應用程序與PM2守護進程。

  • 很多孩子的處理腳本,一些節點,有的使用casperjs/phantomjs

  • 的數據庫憑據,服務器端口配置文件等

  • 許多NPM的依賴關係,一些對於應用程序本身,一些只能由子進程使用。 該應用程序本身運行完美,每個路徑都存儲在配置文件中,因此部署應該不會太難。

  • 中的package.json文件中的所有NPM依賴

我想做什麼:

  • 商店的Git回購的應用程序,所以我可以快速地將它設置上EC2實例。
  • 以簡單的方式安裝pm2,phantomjs/casperjs,所有node_modules並創建應用程序的樹狀結構(包括用於應用程序創建文件的一些空文件夾),以便那些不瞭解應用程序的人可以獲得它運行起來很快。

我的問題:

  • 我需要的node_modules添加到我的git回購?

  • 如何以最簡單的方式整合應用程序部署,安裝依賴項以及安裝pm2,幻像和casper?我不介意製作劇本,但我不知道從哪裏開始或最佳做法。我在網上看到的大部分內容都是關於nodejitsu/heroku並且不適用。

我的缺點:

  • 新到Git
  • 沒有遵循任何發展指導方針,這一切開始作爲一個玩具項目。

希望我的問題可以理解,謝謝大家!

編輯:

到目前爲止,我有:

仍試圖弄清楚如何包含外部依賴關係。部署

回答

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文件夾不應該被添加到混帳回購協議。您應該將所有項目節點依賴項添加到package.json文件中,剩下的工作就應該由npm install/npm update完成。

+0

非節點依賴關係呢? – xShirase

+0

您可以將它們添加到'apt-get install'中,或者在'pm2 index.js'之前添加另一個步驟並顯示如何安裝這些依賴項。 – cspiegl

+0

是的,這就是我所做的,用一個簡單的bash腳本來使事情更順暢。 Thankks! – xShirase

0

您可以使用Capistrano輕鬆完成所有的部署任務。它是用Ruby編寫的,但你可以用它來部署任何你想要的東西,包括Node.js應用程序。

你可以找到很多examplesintegration modules