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

基于Vite的前端自动化部署方案

👨 作者简介:大家好,我是Taro,全栈领域创作者
✒️ 个人主页:唐璜Taro
🚀 支持我:点赞👍+📝 评论 + ⭐️收藏


文章目录

  • 前言
  • 一、主流解决方案
  • 二、了解SCP概念
  • 三、自动化部署流程
    • 1.创建Vite项目
    • 2. config.js
    • 3. index.js
    • 4. package.json注册 deploy 部署命令
  • 总结


前言

每次前端项目打包后,我们面临需要手动更新到服务器,效率低下且容易出错。本文将采用 npm run deploy 的脚本命令实现一个简单的自动化上传脚本


提示:以下是本篇文章正文内容,下面案例可供参考

一、主流解决方案

  1. CI/CD 通过 Git 仓库的推送事件触发自动构建和部署

  2. 本地脚本自动化​​(简单场景)

二、了解SCP概念

SCP是指在本地主机与远程主机或者两台远程主机之间基于ssh协议安全地传输计算机文件。“SCP”通常指安全复制协议或者程序本身。

三、自动化部署流程

1.创建Vite项目

代码如下(示例):基于Vite 创建 Vue.js 项目的命令

npm init vite@latest vue-deploy -- --template vue

项目根目录下添加 deploy 文件夹

在这里插入图片描述

deploy 文件夹下分别添加 index.js 和config.js 两个文件

安装所需库

npm i scp2 ora chalk  -D

2. config.js

代码如下(示例):

export default {id: '',           // 服务器配置id,自定义即可describe: '测试环境',   // 对服务器配置的解释host: '192.168.1.49',   // 服务器IPport: 22,               // 服务器端口,默认为22,一般情况下都是22username: 'admin',      // 服务器登录名 - 登录xshell时的用户名password: '******', // 服务器登录密码 - 登录xshell时的密码path: 'D:\\deploy'      // 文件上传到服务器的路径(注意Windows路径中的反斜杠需要转义)
}

3. index.js


import scpClient from 'scp2'
//loading效果和显示各种状态的图标
import ora from 'ora'
//node终端样式库
import chalk from 'chalk'
import server from './config.js'// node 终端提示语,process.env:当前进程环境
const spinner = ora('正在发布到' + (process.env.NODE_ENV === 'prod' ? '生产' : '测试') + '服务器...')// loading
spinner.start()// scp2库上传文件
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('发布失败.\n'))throw err} else {console.log(chalk.green('Success! 成功发布到' + (process.env.NODE_ENV === 'prod' ? '生产' : '测试') + '服务器! \n'))}}
)

4. package.json注册 deploy 部署命令

{"name": "vue-deploy","private": true,"version": "0.0.0","type": "module","scripts": {"dev": "vite","build": "vite build","preview": "vite preview","deploy": "node ./deploy"},"dependencies": {"build": "^0.1.4","vue": "^3.5.13"},"devDependencies": {"@vitejs/plugin-vue": "^5.2.3","chalk": "^5.4.1","ora": "^8.2.0","scp2": "^0.5.0","vite": "^6.3.5"}
}

总结

以上就是今天要讲的内容,本文仅仅简单介绍了自动化部署代码

http://www.xdnf.cn/news/10118.html

相关文章:

  • (一)微服务(垂直AP/分布式缓存/装饰器Pattern)
  • Bootstrap项目 - 个人作品与成就展示网站
  • 【数据集】高分辨率(1 km)月尺度中国气候(降水+最高/低温)数据集(1952–2019)
  • 【目标检测】【ICCV 2021】条件式DETR实现快速训练收敛
  • Flume 自定义拦截器开发实战:添加时间戳与 JSON 处理
  • AI感知与行动:考拉悠然发布空间智能世界模型,让AI走进物理世界
  • AcroForm 表单:动态字段值调整及避免使用 “event.value“
  • 中国城市间地理距离矩阵(2024)
  • 历年南京理工大学计算机保研上机真题
  • linux常用命令笔记
  • 进程生命周期
  • Java八股-数据类型转换有哪些?类型互转会有什么问题?为什么用bigDecimal 不用double ?自动装箱和拆箱?包装类?
  • 简单说一说Modern ABAP这个概念
  • ZC-OFDM雷达通信一体化减小PAPR——直接限幅法
  • CSS级联样式(基础知识)备忘录
  • C# 结合PaddleOCRSharp搭建Http网络服务
  • MySQL大表结构变更利器:pt-online-schema-change原理与实战指南
  • ⼤模型驱动的DeepInsight Copilot在蚂蚁的技术实践
  • LINUX530 rsync定时同步 环境配置
  • 【c语言输入不大于26的整数,输出全部大写字母输入3输出ABC】2022-1-30
  • Java限制单价小数位数方法
  • sward V1.1.4版本发布,支持文档审批及文档导出
  • 天气预报中的AI:更准确的预测如何实现
  • quic为什么没有被大规模应用?
  • LangChain-自定义Tool和Agent结合DeepSeek应用实例
  • 【面试 - 遇到的问题 - 优化 - 地图】腾讯地图轨迹回放 - 回放的轨迹时间要和现实时间对应(非匀速)
  • Bonjour
  • Python----目标检测(《Fast R-CNN》和Fast R-CNN)
  • 如何成为一名优秀的产品经理
  • 2359.找到离给定两个节点最近的节点