教你用 pm2 快速部署前端项目

0x00 前言

前端部署项目到测试环境,简单粗暴的直接用 gulp 来写,详细流程可以看我总结的文档:
前端代码部署

pm2 大家应该都知道,主要是用来管理 node 进程,但是同样可以用来部署前端代码。

目前 pm2 已经商业化,免费版叫 pm2 runtime

0x01 步骤

全局安装 pm2

1$ sudo npm i pm2 -g

同时服务器上也需要全局安装 pm2

配置SSH

首先需要生成 SSH 密钥,用来连接服务器

1ssh-keygen -t rsa
2ssh-copy-id -i path/to/my/key your_username@server.com

也可以手动添加 public key 到服务器上的 ~/.ssh/authorized_keys

pm2 配置文件

在项目根目录下新建 ecosystem.config.js

 1module.exports = {
 2  apps: [{
 3    name: "app",
 4    script: "app.js"
 5  }],
 6  deploy: {
 7    // "production" 是环境名称
 8    production: {
 9      // SSH key 路径
10      key: `${process.env.HOME}/.ssh/your-privite.key`,
11      // SSH 用户
12      user: "www",
13      // SSH 端口
14      host: ["your.remote.server"],
15      // SSH 配置
16      ssh_options: "StrictHostKeyChecking=no",
17      // GIT 远程分支
18      ref: "origin/master",
19      // GIT 仓库
20      repo: "git@github.com:username/repository.git",
21      // 服务器部署路径
22      path: "/var/www/my-repository",
23      // 安装后置任务
24      'post-setup': "npm install",
25      // 部署后置任务
26      'post-deploy': "npm run build",
27    },
28  }
29}

由于 pm2 是用来部署 node 代码的,需要提供一个 js 文件用来执行,上面配置文件制定了项目根目录下的 app.js

里面写一行 log 即可

1console.log('app is running')

首次部署配置

1$ pm2 deploy production setup

从上面配置文件可知,setup 完成后会执行 npm install

首次部署后 pm2 会在执行文件夹(配置文件中的path) 生成三个文件夹

  • current - 当前版本代码,可以配置为 nginx 指向,也是 git repo

  • shared - 里面有log 和pid 等信息

  • source - git 拉下来的代码

一些部署命令

 1# 首次部署命令
 2pm2 deploy production setup
 3
 4# 非首次部署命令
 5pm2 deploy production update
 6
 7# 回退一个版本
 8pm2 deploy production revert 1
 9
10# 远程执行服务器命令
11pm2 deploy production exec "pm2 reload all"

链接

  • 官方 ssh 部署说明

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值