一条命令实现打包并自动部署

227 阅读1分钟

上上篇小作文说了如何实现打包后 一条命令自动部署 ,经过两天时间,我又变懒了,我想要用一条命令实现打包并自动部署,毕竟能一步实现的事情我干嘛走两步? 只需要两小步改动便可以实现

1,在之前的自动上传命令执行之前,先执行打包命令

888.jpg

const config = require('./config.js')
const shell = require('shelljs')
const path = require('path')
let Client = require('ssh2-sftp-client')
// 打包 npm run build
const compileDist = async () => {
  if (shell.exec(`npm run build`).code == 0) {//判断是否打包完成
    console.log("打包成功")
  }
}
 
async function connectSSh () {
  let sftp = new Client()
  sftp.connect({
    host: config.ip, // 服务器 IP
    port: config.port,
    username: config.username,
    password: config.password
  }).then(() => {
    console.log("先执行删除服务器文件")
    return sftp.rmdir(config.rmpath, true)
  }).then(() => {
    // 上传文件
    console.log("开始上传")
    return sftp.uploadDir(path.resolve(__dirname, '../dist'), config.path)
  }).then(() => {
    console.log("上传完成")
    sftp.end()
  }).catch((err) => {
    console.log(err, '失败')
    sftp.end()
  })
}
async function runTask () {
  shell.exec(`npm run build`)   //这里添加一条打包命令
  await compileDist()     //打包完成
  await connectSSh()      //提交上传
}
runTask()
2,修改打包命令

修改打包命令,upload改为BAU。--意思为 build and upload

999.jpg 这样就行啦,完活!