在這篇文章之前我曾經寫過一個一篇使用 webhook 來自動部署 NodeJS 項目的問題。由於要使用到 webhook 因此我就選擇了 coding 來作一個代碼倉庫恰好也支持 webhook。可是,某些同窗可能不想把代碼放到第三方的倉庫上面,能不能直接在本地一行命令就部署到服務器上面呢?node
拋出這個問題以後,我便用 Google 搜素了一下,發現尤大大的 github 裏面竟然有一個可以完美解決個人要求的 repo,太棒了!git
repo:PODgithub
首先須要一臺 VPS,而且安裝好 Node、npm 和 git。web
接着來安裝 pod:面試
$ npm install -g pod
確保準備工做都作好後,連上你的 VPS,咱們須要在服務器上面先作一些操做。express
$ pod
直接在終端運行 pod 它會詢問你是否使用當前目錄,若是有特殊需求的話能夠自行設置。而且在你設置的目錄下建立兩個文件夾,分別爲:apps 和 repos。npm
$ pod create myapp
運行上面的命令後,它會輸出一些內容,而且在 apps 和 repos 兩個文件夾裏面建立好名爲 myapp 的文件夾和 .git 文件。json
它輸出的內容裏面有兩個黃色字體標註的,分別是部署目錄以及工做的目錄。記住這兩個路徑,待會會使用到。服務器
前面兩步都是在服務器上面操做的,接着咱們就須要把項目克隆到本地。app
$ git clone ssh://用戶名@公網IP/黃色字體路徑(woking)
克隆好事後,咱們在新建一個 remote 用來部署使用的。
$ git remote add deploy ssh://用戶名@公網IP/黃色字體路徑(repo)
git 操做都作好後,咱們就試下用 express 作一個簡單的應用而且部署到服務器上面試試。
app.js
const express = require('express') const app = express(); app.use((req, res) => res.end('hello express!')) app.listen(8080)
package.json
{ "name": "myapp", "version": "1.0.0", "description": "", "main": "app.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { "type": "git", "url": "" }, "author": "", "license": "ISC", "dependencies": { "express": "^4.14.0" } }
.gitigore
node_modules .vscode/ .DS_Store dump.rdb
而後咱們就 commit 一下,而後 push 到服務器上面去,
$ git add . $ git commit -m "first commit" $ git push deploy master
保證本地 push 到服務器成功以後,咱們回到服務器上面去。運行:
$ pod list
看看本身的項目是否成功運行了,而後用公網 ip 訪問一下頁面是否成功出現了。
POD 還有它許多強大的功能,上面只是簡單入門,想深刻了解的話請到 github 上,裏面有詳細的文檔和案例。