使用 pm2 部署 vue 项目

  1. 在vue项目中新建 serve.js 文件,内容如下:
const fs = require('fs')
const serve = require('koa-static')
const Koa = require('koa')
const app = new Koa()
const ENV = process.env.NODE_ENV
// dist 打包文件名称
app.use(serve('dist'))
let port = 10088;
// 不同环境 启用不同的端口
switch(ENV){
  case 'pro_test':port = 10088 ;break;  // 测试
  case 'pro_dev':port = 10998 ;break;  // 开发
}
// 开启单页路由跳转
app.use(async (ctx) => {
  let htmlFile = await (new Promise(function (resolve, reject) {
    fs.readFile('./workSheet/index.html', (err, data) => {
      if (err) {
        reject(err)
      } else {
        resolve(data)
      }
    })
  }))
  ctx.type = 'text/html'
  ctx.body = htmlFile
})
var PORT = parseInt(port)

app.listen(PORT, function () {
  console.log('Node app is running, port:', PORT, '\n\n\n\n\n\n')
})
  1. 在vue根目录再创建一个 .sh 文件(我这边是 dyploy.sh)
echo "开始拉取项目:工单连调环境分支"
git pull origin dev
npm run build:pro_dev
echo "项目拉取成功"

#判断pm2进程是否存在,存在重启,不存在新建 ( vueProject 是 pm2进程的name )
if pm2 ls | grep vueProject
then pm2 restart vueProject
echo "重新启动项目!"
else pm2 start   npm --name vueProject -- run node:pro_dev
echo "创建新的项目"
fi

echo "结束"
  1. 展示一下 package.json
    "dev": "vue-cli-service serve  --mode dev --open"
    "build:pro_test": "vue-cli-service build  --mode pro_test"
    "build:pro_dev": "vue-cli-service build  --mode pro_dev"
    "node:pro_test": "export NODE_ENV='pro_test' &&node server.js "
    "node:pro_dev": "export NODE_ENV='pro_dev' &&node server.js "
  1. 配置好之后,将项目代码上传到git 在服务器上拉去vue项目
  2. 下载依赖包
cnpm install
  1. 依赖下载完之后, 执行 ./dyploy.sh 执行完之后 访问 服务器地址 + 设置的端口 即可
    每次更改完代码之后,上传到 git 上 执行一下 .sh 文件 即可更新部署 ,方便实用
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容