前言

在这篇文章以前我曾经写过一个一篇使用 webhook 来自动部署 NodeJS 项目的问题。因为要使用到 webhook 所以我就选择了 coding 来做一个代码仓库刚好也支持 webhook。但是,某些同学可能不想把代码放到第三方的仓库上面,能不能直接在本地一行命令就部署到服务器上面呢?

抛出这个问题之后,我便用 Google 搜素了一下,发现尤大大的 github 里面居然有一个能够完美解决我的要求的 repo,太棒了!

repo:POD

准备工作

首先需要一台 VPS,并且安装好 Node、npm 和 git。

接着来安装 pod:

$ npm install -g pod

快速使用

确保准备工作都做好后,连上你的 VPS,我们需要在服务器上面先做一些操作。

使用 pod 初始化目录:

$ pod

直接在终端运行 pod 它会询问你是否使用当前目录,如果有特殊需求的话可以自行设置。并且在你设置的目录下创建两个文件夹,分别为:apps 和 repos。

使用 pod 创建项目:

$ pod create myapp

运行上面的命令后,它会输出一些内容,并且在 apps 和 repos 两个文件夹里面创建好名为 myapp 的文件夹和 .git 文件。

它输出的内容里面有两个黄色字体标注的,分别是部署目录以及工作的目录。记住这两个路径,待会会使用到。

把项目克隆到本地

前面两步都是在服务器上面操作的,接着我们就需要把项目克隆到本地。

$ git clone ssh://用户名@公网IP/黄色字体路径(woking)

克隆好过后,我们在新建一个 remote 用来部署使用的。

$ git remote add deploy ssh://用户名@公网IP/黄色字体路径(repo)

使用 Express

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 上,里面有详细的文档和案例。


_我已经从中二毕业了
7.9k 声望235 粉丝

不搞前端会死星人。