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"
相关推荐
颖风船4 分钟前
膨胀腐蚀及底层实践,拒绝opencv,matlab等方式
前端·opencv·matlab
俩毛豆8 分钟前
【毛豆工具集】【文件】【目录操作】生成沙盒目录
前端·javascript·鸿蒙
霁月的小屋12 分钟前
从Vue3与Vite的区别切入:详解Props校验与组件实例
开发语言·前端·javascript·vue.js
zeijiershuai13 分钟前
Linux、Linux常用命令、Linux软件安装、Linux项目部署
linux·运维·服务器
有一个好名字21 分钟前
Spring Boot 依赖注入指南:多种方式深度剖析与代码演示
java·服务器·spring boot
美酒没故事°28 分钟前
vue3+element实现复杂表单选中回显
前端·javascript·vue.js
Gogym38 分钟前
解决vue axios提交日期,服务器接收少一天的问题
前端·javascript·vue.js
淘源码d42 分钟前
上门家政源码,基于Java/SpringBoot和Uniapp的全栈家政预约平台,支持多端适配(小程序/H5/APP)
java·vue.js·源码·家政·家政小程序源码·上门家政·家政平台
韭菜炒大葱44 分钟前
LangChain 二:输出结果定制与历史管理能力详解
前端·langchain·openai