提要
非常友好的前端打包部署方式,主要基于node和git,基本上不用安装别的东西
使用
ssh链接远程主机(测试)
ssh root@111.11.23.68
root@111.11.23.68's password:输入密码这里是不显示的敲完后回车即可
cd /回到根目录
ls检查目录
- 测试链接无问题后进行下面的操作;
在vue的项目平级下创建deploy.js
const cp=require('child_process')
//此包ssh2需要下载
const ssh2=require('ssh2')
//执行tar.sh脚本获取输出流
let pro=cp.exec('"./tar.sh"',(error)=>{
if (error) {
console.log(error)
}
})
pro.stdout.pipe(process.stdout)
pro.on('exit',()=>{
//打包完成后上传
// 上传
connect()
})
let conn=new ssh2.Client();
// 上传操作
function connect() {
conn.on('ready',()=>{
conn.sftp((err,sftp)=>{
sftp.fastPut('./vue项目/dist.tar.gz','/服务器暂存地址projectV/dist.tar.gz',{},(err,result)=>{
//上传完成后开始解压
Shell(conn)
})
})
}).connect({
host:'服务器IP',
port:'默认22',
username:'用户名root',
password:'密码'
})
}
// 解压部署操作
function Shell(conn) {
conn.shell((err,stream)=>{
stream.end(
`
cd /projectV
mv ../www/wwwroot/vuedist bak/vuedist.$(date "+%Y%m%d%H%M%")
tar zxvf dist.tar.gz
mv dist ../www/wwwroot/vuedist
rm -rf dist.tar.gz
exit
`
//进入服务器暂存地址
//上传前先备份原始项目
//解压上传的压缩包
//移动解压后的文件到发布目录
//删除压缩包
//退出
).on('data',data=>{
console.log(data.toString())
}).on('close',()=>{
conn.end()
})
})
}
2.创建tar.sh与刚刚创建的js平级
cd ycboke
npm run build
tar zcvf dist.tar.gz dist
#打包和压缩的操作
3.执行deploy.js
node deploy.js
4.检查服务器是否有新的上传,以及是否备份原始文件
到此就结束啦!没有什么特别好说的直接复制代码即可