vue本地打包并将构建文件推送到服务器对应目录下

第一步安装依赖

bash 复制代码
pnpm install node-ssh

第二步创建名为deploy.mjs文件

javascript 复制代码
import path from 'node:path'
import { fileURLToPath } from 'node:url'
import { NodeSSH } from 'node-ssh'

const ssh = new NodeSSH()

async function deploy() {
  console.log('打包成功进行部署流程')
  try {
    // 连接到远程服务器
    await ssh.connect({
      host: 'xx.xx.xx.xx',
      username: 'xxx',
      password: 'xxx',
    })

    console.log('服务器连接成功')

    // 获取当前文件的目录路径
    const __dirname = path.dirname(fileURLToPath(import.meta.url))
    const localPath = path.join(__dirname, 'dist') // 本地目录
    const remotePath = '/www/wwwroot/xxxx' // 远程目录

    // 确保 localPath 存在
    console.log(`本地文件路径: ${localPath}`)

    // 上传文件
    await ssh.putDirectory(localPath, remotePath, {
      recursive: true,
      concurrency: 10,
      validate: (itemPath) => {
        // 只上传文件
        return itemPath !== localPath
      },
    })

    console.log('部署成功')
  }
  catch (error) {
    console.error('Error:', error)
  }
  finally {
    // 断开连接
    ssh.dispose()
  }
}

deploy()

第三步在package.json中scripts里添加(实际用npm、pnpm、yarn都可以自己更换)

javascript 复制代码
 "deploy": "pnpm run build && node deploy.mjs"
相关推荐
ICT技术最前线3 分钟前
华为交换机VLAN配置命令详解
服务器·网络·vlan·华为交换机
zhendianluli3 分钟前
为什么fclose处理的是file而不是fd
linux·服务器·网络
牙牙7054 分钟前
部署SFTP服务
linux·服务器·网络
人工智能训练4 分钟前
Ubuntu 系统安装 VSCode 超全指南(3 种方法,适配 20.04/22.04 LTS)
linux·运维·服务器·vscode·ubuntu
TG:@yunlaoda360 云老大5 分钟前
华为云国际站代理商的CloudPond跨境主要有什么用呢?
服务器·网络·华为云
facaixxx20246 分钟前
GPU算力租赁:3080Ti、Tesla P40和RTX40服务器配置整理
运维·服务器·gpu算力
一个没有感情的程序猿10 分钟前
前端实现交互式3D人体肌肉解剖图:基于 Three.js + React Three Fiber 的完整方案
前端·javascript·3d
武玄天宗11 分钟前
第五章、flutter怎么创建底部底部导航栏界面
前端·flutter
Goodbaibaibai12 分钟前
接口请求了两次,一次报200,一次报404
前端
神算大模型APi--天枢64613 分钟前
国产大模型后端开发与部署实战:从算力架构到行业规模化落地
大数据·运维·服务器·人工智能·架构