前端部署指南:手把手教你部署 Vue 项目(2025-2026 实用版)
这是一篇面向 Vue 3 + Vite 项目(目前最主流的组合)的完整部署教程,覆盖从本地打包到上线最常见几种方式。无论你是初学者还是想优化部署流程,都能找到对应方案。
一、先确认你的项目准备工作
在开始部署前,请确保以下几点已经完成:
- 项目能正常
npm run dev启动 - 已配置好
vite.config.js中的base(非常重要!)
// vite.config.js
export default defineConfig({
base: '/', // 根路径部署(最常见)
// 如果部署到子目录,例如 https://example.com/myapp/
// base: '/myapp/',
})
- 环境变量区分(开发/生产)
# .env.production
VITE_API_BASE_URL=https://api.yourdomain.com
- 打包命令通常是:
npm run build
打包后会在项目根目录生成 dist 文件夹。
二、最主流的几种部署方式对比
| 部署方式 | 难度 | 速度 | 成本 | 自动更新 | HTTPS | 推荐场景 | 代表平台 |
|---|---|---|---|---|---|---|---|
| 静态托管(推荐) | ★☆☆ | 快 | 低/免费 | 手动/自动 | 易 | 几乎所有纯前端项目 | Vercel、Netlify、Cloudflare Pages |
| Nginx + 服务器 | ★★★ | 快 | 中等 | 手动/脚本 | 需配置 | 需要后端配合、自定义域名、国内服务器 | 阿里云/腾讯云 ECS + Nginx |
| Docker 容器化 | ★★★★ | 中 | 中等 | CI/CD | 易 | 团队协作、大型项目统一部署 | Docker + 任意云 |
| Node.js 直跑(不推荐) | ★★☆ | 慢 | 中等 | — | 需配置 | 仅用于 SSR/服务端渲染项目 | — |
2025-2026 最推荐:Vercel / Netlify / Cloudflare Pages(零配置、自动 HTTPS、CDN、预览分支、超快)
三、手把手部署(推荐方式)
方式1:Vercel(目前最简单、最快)
- 注册 Vercel 账号(GitHub 登录最方便)
https://vercel.com - 导入项目
- 点击 “New Project” → Import Git Repository
- 选择你的 GitHub / GitLab 仓库
- 配置(通常什么都不用改)
- Framework Preset:Vue
- Build Command:
npm run build(默认即可) - Output Directory:
dist(Vite 默认) - Install Command:
npm install(默认)
- 点 Deploy,几秒到几十秒后就上线了!
- 自定义域名(可选)
- 项目 → Settings → Domains → Add Domain
额外福利:
- 自动部署(push 到 main 自动重新部署)
- 每个 PR 自动生成预览链接
- 免费 HTTPS
- 全球 CDN
方式2:Netlify(操作几乎一样)
- 注册 https://app.netlify.com
- New site from Git → 连接仓库
- Build settings:
- Build command:
npm run build - Publish directory:
dist
- Deploy site
Netlify 额外优势:表单处理、身份验证、函数(Serverless)都开箱即用。
方式3:Cloudflare Pages(免费额度更大)
- 登录 https://dash.cloudflare.com
- Workers & Pages → Create → Pages → Connect to Git
- 选择仓库
- Build settings:
- Framework preset: Vue
- Build command:
npm run build - Build output directory:
dist
Cloudflare 优势:全球最强 CDN、D1 数据库、R2 对象存储无缝集成。
方式4:手动部署到 Nginx 服务器(国内服务器常用)
- 本地打包
npm run build
- 上传 dist 目录到服务器
常用路径:/var/www/html/myapp或/usr/share/nginx/html/myapp - 配置 Nginx(最常见配置)
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
location / {
root /var/www/html/myapp; # 你的 dist 目录
try_files $uri $uri/ /index.html; # SPA 核心配置!!
}
# 开启 gzip(推荐)
gzip on;
gzip_types text/plain application/javascript text/css application/json;
# 缓存静态资源(可选)
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
expires 30d;
access_log off;
}
}
- 重启 Nginx
sudo nginx -t # 检查配置
sudo nginx -s reload # 或 systemctl reload nginx
- 配置 HTTPS(强烈推荐)
- 使用宝塔面板一键申请 Let’s Encrypt
- 或 certbot 命令行
四、Vue 项目部署常见问题 & 解决方案
| 问题 | 原因 | 解决办法 |
|---|---|---|
| 刷新 404 | SPA 路由未处理 | Nginx try_files 或 Vercel/Netlify 默认支持 |
| 图片/资源 404 | base 配置错误 | vite.config.js 设置正确的 base |
| API 请求跨域 | 后端未开启 CORS | 后端加 CORS,或前端用代理(开发时) |
| 打包后体积很大 | 未开启压缩、tree-shaking 不彻底 | vite-plugin-compression + analyzer |
| 环境变量不生效 | 变量必须以 VITE_ 开头 | 检查 .env.production 文件名和前缀 |
| 路由使用 history 模式 404 | 服务器未配置 SPA 重定向 | 配置 try_files 或 netlify.toml / _redirects |
五、推荐的现代部署优化组合(2025-2026)
GitHub / GitLab
↓
Vercel / Netlify / Cloudflare Pages 自动部署
↓
自定义域名 + Cloudflare DNS(DNS 解析 + CDN)
↓
开启 Brotli / Gzip + 图片优化(WebP / AVIF)
↓
监控:Sentry / LogRocket / Vercel Analytics
六、快速 checklist
- [ ] 项目能本地 build 出 dist
- [ ] vite.config.js 中 base 设置正确
- [ ] 环境变量使用 VITE_ 前缀
- [ ] 选择托管平台(推荐 Vercel)
- [ ] 部署后测试:刷新页面、路由跳转、API 请求
- [ ] 配置自定义域名 + HTTPS
你目前的项目是部署到哪个平台?
或者遇到了什么具体报错/问题?
告诉我,我可以给你更针对性的解决方案和配置示例。