scp2自动化部署

1、安装

npm install scp2 --save-dev

2、使用

const scpClient = require('scp2') // 引入scp2
const ora = require('ora')
const chalk = require('chalk')
const spinner = ora('正在发布到服务器...')

const Client = require('ssh2').Client
const conn = new Client()

const server = {
  host: '', // 服务器的IP地址
  port: '', // 服务器端口
  username: 'root', // 用户名
  password: '', // 密码
  path: '/var/www/html/', // 项目部署的服务器目标位置
  command: 'rm -rf /var/www/html/*' // 删除命令
}

conn.on('ready', () => {
  conn.exec(server.command, (err, stream) => {
    if (err) { throw err }
    stream.on('close', () => {
      spinner.start()
      scpClient.scp(
        './dist/', // 本地打包文件的位置
        {
          host: server.host,
          port: server.port,
          username: server.username,
          password: server.password,
          path: server.path
        },
        (err) => {
          spinner.stop()
          if (err) {
            console.log(chalk.red('发布失败!'))
            throw err
          } else {
            console.log(chalk.green('项目发布成功!'))
          }
        }
      )
      conn.end()
    }).on('data', (data) => {
      console.log('STDOUT: ' + data)
    }).stderr.on('data', (data) => {
      console.log('STDERR: ' + data)
    })
  })
}).connect({
  host: server.host,
  port: server.port,
  username: server.username,
  password: server.password
})

3、配置npm脚本:在package.json配置执行命令

// mode对应.env文件的环境配置
"deploy:test": "vue-cli-service build --mode test && node ./deploy" // 测试环境打包部署
"deploy:dep": "vue-cli-service build --mode production && node ./deploy" // 生产环境打包部署
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容