前言
在这篇文章以前我曾经写过一个一篇使用 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 上,里面有详细的文档和案例。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。