前端发布流程总结(Vue + Element 项目)

一、背景说明

本项目基于:

  • Vue 3(或 Vue CLI 项目结构)
  • Element Plus
  • 自定义 Node 脚本实现自动化部署(SFTP)

🚀 二、核心命令说明

1️⃣ 开发环境发布

复制代码
npm run release-dev

实际执行内容:

复制代码
vue-cli-service build && node ./release.server.js dev

2️⃣ 生产环境发布

复制代码
npm run release-prod

实际执行内容:

复制代码
vue-cli-service build && node ./release.server.js prod

⚙️ 三、整体发布流程

复制代码
执行 npm run release-xxx
        ↓
1. 前端项目打包(build)
        ↓
2. 生成静态资源(HTML / JS / CSS)
        ↓
3. 执行 release.server.js
        ↓
4. 通过 SFTP 连接服务器
        ↓
5. 上传文件到指定目录
        ↓
6. 发布完成

📁 四、构建阶段说明

使用工具

  • Vue CLI

构建命令

复制代码
vue-cli-service build

输出目录

复制代码
pc-last/

⚠️ 需在 vue.config.js 中配置:

复制代码
module.exports = {
  outputDir: "pc-last"
}

🔧 五、部署脚本(release.server.js)

1️⃣ 环境区分

复制代码
node release.server.js dev
node release.server.js prod

2️⃣ 发布策略

🔹 dev(测试环境)

复制代码
删除旧目录
↓
上传新文件

👉 特点:

  • 简单粗暴
  • 无备份
  • 适合测试

🔹 prod(生产环境)

复制代码
旧目录重命名(备份)
↓
上传新文件

👉 示例:

复制代码
pc → pc_2026-04-02_10:30

👉 特点:

  • 支持回滚
  • 更安全

3️⃣ 核心能力

  • SFTP 连接服务器
  • 递归上传目录
  • 自动备份(生产环境)
  • 上传日志输出

⚠️ 六、注意事项(重要)

❗ 1. 环境变量问题

目前问题没有暴露出来,因为项目中没有.env文件,如果有则存在风险:

❌ 场景1:接口打错环境

复制代码
你发布 dev
但请求的是生产接口

👉 结果:

  • 测试数据污染生产 ❌
  • 查问题非常痛苦 ❌

❌ 场景2:CDN路径错误

复制代码
静态资源路径指向生产CDN

❌ 场景3:调试开关关闭

复制代码
dev 环境看不到日志

当前写法:

复制代码
vue-cli-service build

👉 默认是 production 模式

✅ 必须优化:

📌 对应加载:

|-------------|---------------------------------|
| 命令 | 加载文件 |
| --mode dev | .env.dev |
| --mode prod | .env.prod.env.production |

复制代码
"release-dev": "vue-cli-service build --mode dev && node ./release.server.js dev",
"release-prod": "vue-cli-service build --mode prod && node ./release.server.js prod"

❗ 2. 输出目录必须一致

复制代码
构建目录 ≠ 上传目录 → 发布失败

❗ 3. 删除目录风险(dev)

复制代码
client.rmdir(dst, true);

👉 风险:

  • 路径错误会误删服务器文件

❗ 4. 明文服务器密码(安全问题)

复制代码
password: "xxx"

✅ 建议:

复制代码
process.env.SSH_PASSWORD

💡 七、标准发布流程(推荐操作)

✅ 开发环境发布

复制代码
npm run release-dev

✅ 生产环境发布

复制代码
npm run release-prod

👉 建议:

  • 发布前确认代码
  • 确认环境变量
  • 确认服务器路径
  • 手动打包替换Linux文件发布

🔁 八、回滚方案(生产环境)

目录结构示例

复制代码
/pc                当前版本
/pc_2026-04-02     历史版本

回滚方式

复制代码
mv pc pc_bad
mv pc_2026-04-02 pc

🧠 九、一句话总结

release-dev / release-prod 本质是:前端打包 + Node 脚本通过 SFTP 自动部署到服务器(dev 直接覆盖,prod 先备份再发布)


🎯 十、后续优化方向(进阶)

  • 引入 CI/CD(JenkinsI)
  • 使用环境变量管理敏感信息
  • 支持版本号发布(tag)
  • 增加灰度发布能力
  • Docker 化部署
相关推荐
lichenyang4535 小时前
Docker 学习笔记(一):为什么需要镜像、容器和仓库?
前端
kyriewen5 小时前
别再对着 TypeScript 报错发呆了:我把 10 个最常见的红色波浪线翻译成了人话
前端·javascript·typescript
IT_陈寒5 小时前
SpringBoot自动配置的坑,我的API突然就404了
前端·人工智能·后端
free356 小时前
从 0 实现一个 Tiny JavaScript VM:项目架构拆解
javascript
暴走的小呆6 小时前
Vue 2 中 Object 的变化侦测:从 getter/setter 到 Dep、Watcher、Observer
vue.js
奇奇怪怪的6 小时前
Embedding 模型 10+ 横向评测
前端
陈广亮6 小时前
Monorepo 从 0 到 1 实操指南 2026 版:pnpm catalogs + Turborepo 2.x + changesets 全链路
前端
子兮曰6 小时前
OpenMontage 深度解剖:你的 AI 编程助手,其实是个视频工作室
前端·后端·ai编程
敲代码的鱼6 小时前
PDF 预览与签名批注写回 支持安卓 iOS 鸿蒙 UTS插件
android·前端·ios