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

article/2025/8/2 21:06:26

👨 作者简介:大家好,我是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.hkcw.cn/article/UUDuTDSxmx.shtml

相关文章

PlankAssembly 笔记 DeepWiki 正交视图三维重建

manycore-research/PlankAssembly | DeepWiki PlankAssembly项目原理 这个项目是一个基于深度学习的3D重建系统,其核心原理是从三个正交视图的工程图纸中重建出3D形状的结构化程序表示。 核心技术原理 1. 问题定义 PlankAssembly旨在从三个正交视图的工程图纸中…

MQTT协议,EMQX部署,MQTTX安装学习

一、MQTT概述 1.什么是MQTT MQTT是一种基于“发布订阅“”模式的消息传输协议。 消息:设备和设备之间传输的数据,或者服务和服务之间要传输的数据。 协议:传输数据时所遵循的规范。 2.常见的通讯模式 (1)客户端-服…

多模态大语言模型arxiv论文略读(101)

ML-Mamba: Efficient Multi-Modal Large Language Model Utilizing Mamba-2 ➡️ 论文标题:ML-Mamba: Efficient Multi-Modal Large Language Model Utilizing Mamba-2 ➡️ 论文作者:Wenjun Huang, Jiakai Pan, Jiahao Tang, Yanyu Ding, Yifei Xing, …

论文阅读:ADVWEB : CONTROLLABLE BLACK-BOX ATTACKS ON VLM-POWERED WEB AGENTS

原文:2410.17401 源码:https://ai-secure.github.io/AdvWeb/ 摘要: 本文设计了一种专门针对web agent的黑盒攻击框架,通过训练一个对抗性提示生成模型,在网页中自动生成并注入“隐形”对抗性字符串,引导网…

Wireshark 在 macOS 上使用及问题解决

wireshark概述 Wireshark 是被广泛使用的免费开源网络协议分析软件(network protocol analyzer)或网络数据包分析工具,它可以让你在微观层面上查看网络上发生的事情。它的主要功能是截取网络数据包,并尽可能详细地展示网络数据包…

企业级安全实践:SSL/TLS 加密与权限管理(一)

引言 ** 在数字化转型的浪潮中,企业对网络的依赖程度与日俱增,从日常办公到核心业务的开展,都离不开网络的支持。与此同时,网络安全问题也日益严峻,成为企业发展过程中不可忽视的重要挑战。 一旦企业遭遇网络安全事…

#Js篇:BlobFile对象URL.createObjectURL()fetchlocationnavigatornew URl

Blob 在 JavaScript 中,Blob 是一个非常重要的对象,用于表示不可变的、原始的二进制数据块(Binary Large Object) arrayBuffer():获取 Blob 的二进制数据作为 ArrayBuffer。 stream():创建一个可读流&…

HAProxy 可观测性最佳实践

HAProxy 简介 HAProxy(High Availability Proxy)是一款广泛使用的高性能负载均衡器,支持 TCP 和 HTTP 协议,提供高可用性、负载均衡和代理服务。它特别适用于负载较大的 Web 站点,能够支持数以万计的并发连接&#xf…

软件测试|FIT故障注入测试工具——ISO 26262合规下的智能汽车安全验证引擎

FIT(Fault Injection Tester)是SURESOFT专为汽车电子与工业控制设计的自动化故障注入测试工具​,基于ISO 26262等国际安全标准开发,旨在解决传统测试中效率低、成本高、安全隐患难以复现的问题,其核心功能包括&#xf…

【计算机网络】应用层协议Http——构建Http服务服务器

🔥个人主页🔥:孤寂大仙V 🌈收录专栏🌈:计算机网络 🌹往期回顾🌹: 【Linux笔记】——进程间关系与守护进程 🔖流水不争,争的是滔滔不息 一、Http协…

[ctfshow web入门] web80

信息收集 过滤了php和data if(isset($_GET[file])){$file $_GET[file];$file str_replace("php", "???", $file);$file str_replace("data", "???", $file);include($file); }else{highlight_file(__FILE__); }解题 大小写…

移动安全Android——客户端数据安全

本地文件权限配置 测试流程 (1)手机运行待测APP应用,adb执行命令找到APP包名 adb shell dumpsys activity top|findstr ACTIVITY (2)adb shell 进入设备,以Root权限进入/data/data/package包名目录下 c…

AI生态警报:MCP协议风险与应对指南(下)——MCP Host安全

AI生态警报:MCP协议风险与应对指南(上)——架构与供应链风险https://blog.csdn.net/WangsuSecurity/article/details/148335401?sharetypeblogdetail&sharerId148335401&sharereferPC&sharesourceWangsuSecurity&spm1011.24…

机房网络设备操作安全管理制度

该制度围绕机房网络设备操作安全,规定账号实行系统管理员、操作管理员、一般用户三级分级管理,遵循最小授权和权限分割原则,账号需实名制、禁止共享及转借,密码设置需至少 8 位、3 种字符组合且每 3 个月修改一次;高危指令执行需上级审批、双人核查,远程登录需限制权限、…

Root权限:解锁Android的终极力量

Root后的功能扩展 Root后可以实现的高级功能,如系统级备份、自定义ROM、性能优化、广告屏蔽等。 Root的风险与防范 讨论Root可能导致的安全问题,如恶意软件攻击、系统不稳定、保修失效等,提出降低风险的建议,如使用可信工具、备…

亚马逊数据采集软件完全指南:从工具原理到实战落地

亚马逊数据采集软件有哪些?在数字化商业浪潮中,亚马逊作为全球电商巨头,其平台上蕴含着海量的数据宝藏。对于卖家、品牌商以及市场分析师而言,精准获取和分析这些数据,成为了在激烈竞争中脱颖而出的关键。从产品定价的…

免费高清多功能录屏软件推荐

软件介绍 今天为大家介绍一款功能全面的免费录屏软件 - 云豹录屏大师。 录屏格式支持 这款软件特别强大,能够录制多种常见视频格式,包括MP4、AVI、WMV等格式,满足不同场景的录制需求。 高帧率支持 软件最高支持120帧的录制效果&#xff0…

【交通 Traffic Transformer】同一篇文章,内容排版稍有不同 | 交通预测模型中,Transformer相比传统GCN模型有何优势?

冰冻三尺,非一日之寒。 前情提要: 【Traffic Transformer】将 Transformer 应用于 交通预测领域中 | 动态和分层交通时空特征 | 时空模型比纯时间模型的性能要好得多 | 定义不好的相邻矩阵会损害模型Transformer相比传统GCN模型在交通预测中具有三大核心优势: 1、动态空间依…

docker-compose搭建prometheus以及grafana

1. 什么是 Prometheus? Prometheus 是一个开源的系统监控和告警工具,由 SoundCloud 于 2012 年开始开发,现为 CNCF(Cloud Native Computing Foundation)项目之一。它特别适合云原生环境和容器编排系统(如 …

AI科技前沿动态:5.26 - 5.30 一周速览

目录 ⭐ 本周热点💡 阿里巴巴开源自主搜索 AI 智能体 WebAgent💡 我国首个软件开发 AI 智能体标准发布,20 余家巨头联手参编💡 刚刚,新版DeepSeek-R1正式开源!直逼o3编程强到离谱,一手实测来了 …