当前位置: 首页 > article >正文

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

第一步安装依赖

pnpm install node-ssh

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

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都可以自己更换)

 "deploy": "pnpm run build && node deploy.mjs"

http://www.kler.cn/a/306522.html

相关文章:

  • 丹摩征文活动|丹摩智算平台使用指南
  • WebSocket和HTTP协议的性能比较与选择
  • C#文字识别API场景解析、表格识别提取
  • -1大于4?负数与无符号整数类型:size_t的比较问题(strlen)
  • 【真题笔记】21年系统架构设计师案例理论点总结
  • 【小程序】封装网络请求request模块
  • 4------维修手机工具 解锁 刷机 保资料修复 修改参数等多工具合集 工具预览与操作解析
  • ROS学习笔记1.Mapping
  • ??Nginx实现会话保持_Nginx会话保持与Redis的结合_Nginx实现四层负载均衡
  • 【JavaEE】IP协议 应用层协议
  • 【VMvare虚拟机-Ubuntu】解决内存不足问题
  • Oracle重做日志文件的添加及删除
  • 15. 数据维度转换 -- torch.reshape
  • 前端实战:使用JS和Canvas实现运算图形验证码(uniapp、微信小程序同样可用)
  • 代码随想录 | Day21 | 二叉树:找树左下角的值路径总和
  • 判断链表的全部n个字符是否中心对称。
  • Dbt基本概念与快速入门
  • office 2021安装教程
  • C - Make Isomorphic题解
  • Java 类和对象-小结(重要)
  • 基于STM32设计的智能货架(华为云IOT)(225)
  • VUE
  • 跨平台集成:在 AI、微服务和 Azure 云之间实现无缝工作流
  • 深入理解算法效率:时间复杂度与空间复杂度
  • Spark_natural_join
  • 828华为云征文 | 华为云Flexusx与Docker技术融合,打造个性化WizNote服务