node+ssh2自动化打包部署

node+ssh2自动化打包部署超级简单

提要

非常友好的前端打包部署方式,主要基于node和git,基本上不用安装别的东西

使用

ssh链接远程主机(测试)

ssh root@111.11.23.68
root@111.11.23.68's password:输入密码这里是不显示的敲完后回车即可
cd /回到根目录
ls检查目录
  1. 测试链接无问题后进行下面的操作;
    在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.检查服务器是否有新的上传,以及是否备份原始文件
到此就结束啦!没有什么特别好说的直接复制代码即可

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值