自动打包发布前端项目
1、deploy.config.js
module.exports = { packedFile:'dist', //打包文件 project: 'testProject', //本地打包后的文件 port:'8091', // 端口号 place: 'root@123.11.11.111', // 服务器 fpath: '/usr/local/nginx/project', // 服务器上传地址 targetUrl: 'http://123.11.11.111', // 地址链接 }
2、inset-deploy.js
const os = require(`child_process`).execSync const fs = require('fs') const config =require('./deploy.config') const packedFile=config.packedFile // 打包后的文件 const project=config.project // 项目名称 const port=config.port // 端口号 const targetUrl=config.targetUrl //浏览器访问地址 const platform = process.platform //mac系统:darwin window系统:win32 /** * 部署 */ /** 项目名 */ /** 服务用户名和host */ const place = config.place /** 文件放置路径 */ const fpath = config.fpath os(`npm run build`) // 打包 os(`ssh ${place} "cd ${fpath} && rm -rf ${packedFile}"`) // 进入服务对应目录并且删除打包项目 os(`scp -r ${packedFile} ${place}:${fpath}`) // 拷贝dist放到服务器对应文件中 os(`${platform=='darwin'?'rm -rf':'rmdir /s/q'} ${packedFile}`) // 删除本地文件dist try { os(` ${platform=='darwin'?'open':'explorer'} ${targetUrl+':'+port+'/'+project}`) // 打开浏览器 } catch (error) {}
3、打包并发布项目 npm run deploy
"deploy": "node .\\hand\\inset-deploy.js"