- 在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')
})
- 在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 "结束"
- 展示一下 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 "
- 配置好之后,将项目代码上传到git 在服务器上拉去vue项目
- 下载依赖包
cnpm install
- 依赖下载完之后, 执行 ./dyploy.sh 执行完之后 访问 服务器地址 + 设置的端口 即可
每次更改完代码之后,上传到 git 上 执行一下 .sh 文件 即可更新部署 ,方便实用