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"
相关推荐
志尊宝9 分钟前
Vue3 零基础每日笔记(005):ref 响应式基础——为什么 script 里要 .value
前端·javascript·vue.js·笔记
海鸥两三15 分钟前
Mac电脑使用 Tabby 部署前端项目到阿里云服务器完整教程
前端·macos·阿里云
充电zcx20 分钟前
Linux:2:Linux下的基本指令
linux·运维·服务器
console.log('npc')22 分钟前
2026 实测:Grok 4.5 与 Grok 4.6 怎么选?前端开发、教程写作、Figma 还原选型指南
前端·大模型·ai编程·figma·grok
yyt36304584137 分钟前
一次鼠标交互触发两次 Vue flushJobs:把高频交互从 VDOM 里拆出来
前端·vue.js·计算机外设
YUJIANYUE44 分钟前
查立得万用查分安卓版(web环境+查询系统免安装单文件一键运行包)
android·前端
知兀1 小时前
框架脚手架搭建,推送github一键使用
javascript·vue.js·ecmascript
慧都小项1 小时前
从 Figma 到 Qt:Qtitan 能减少哪些界面还原工作?
前端·qt·嵌入式·figma·图形界面·工业界面·qtitan
YWL1 小时前
OpenLayers导出功能:地图截图+GeoJSON导出完整方案,从Canvas合并到PDF生成
前端·vue·openlayers
苦瓜小生1 小时前
【前端】【力扣与手撕】十天带你刷完前端算法与手撕,全是最简单好记的最优解法!day4
前端·数据结构·算法·leetcode·面试