Files
easygoadmin-wiki/EasyGoAdmin_Iris_AntdVue/zh/quickstart/frontend-start.md
T
2026-10-20 21:19:44 +08:00

192 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2.3 前端服务启动
:::tip 概述
本章指导您启动前端开发服务器,包括依赖安装、环境配置和 Vite 开发服务器启动。
:::
## 步骤一:安装依赖
```bash
# 进入前端项目目录
cd ui
# -----------------------------------------------------------------------------
# 安装依赖(推荐 pnpm — 速度快、磁盘占用少)
# -----------------------------------------------------------------------------
# install → 从 pnpm-lock.yaml 精确安装所有依赖
pnpm install
# 如果没有 pnpm,也可以使用 npm
npm install
```
:::warning Node.js 版本
前端项目要求 Node.js >= 18,推荐使用 22.x。可通过 `node -v` 检查版本。
:::
## 步骤二:配置环境变量
前端有两个环境配置文件:
### `.env.development`(开发环境)
```bash
# 服务端口
VITE_PORT = 8001
# 公共基础路径
VITE_PUBLIC_PATH = /
# 代理配置(JSON 数组格式:[["前缀","目标地址"]])
VITE_PROXY = [["/api","http://admin.thinkphp8.elevue/api"]]
# API 接口基础路径(留空,由代理处理)
VITE_GLOB_API_URL =
# API 前缀
VITE_GLOB_API_URL_PREFIX = /api
# 上传接口地址
VITE_GLOB_UPLOAD_URL = /api/upload
# 图片访问地址
VITE_GLOB_IMG_URL = http://file.thinkphp8.elevue
# 是否启用 Mock 数据(false = 使用真实后端 API)
VITE_USE_MOCK = false
```
### `.env.production`(生产环境)
```bash
# 公共基础路径
VITE_PUBLIC_PATH = /
# 是否在生产环境删除 console
VITE_DROP_CONSOLE = true
# API 接口基础路径(留空,由 Nginx 代理处理)
VITE_GLOB_API_URL =
# API 前缀
VITE_GLOB_API_URL_PREFIX = /api
# 上传接口地址
VITE_GLOB_UPLOAD_URL = /api/upload
# 图片访问地址
VITE_GLOB_IMG_URL = http://file.thinkphp8.elevue
# 是否启用 gzip 压缩
VITE_BUILD_COMPRESS = gzip
# 压缩后是否删除原文件
VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false
```
## 步骤三:启动开发服务器
```bash
# -----------------------------------------------------------------------------
# 启动 Vite 开发服务器(支持热更新 — 修改代码后浏览器自动刷新)
# -----------------------------------------------------------------------------
pnpm dev
# 或使用 npm
npm run dev
```
启动成功后会看到:
```text
VITE v3.2.x ready in 1234 ms
➜ Local: http://localhost:8001/
➜ Network: http://192.168.1.100:8001/
```
## 步骤四:配置 API 代理
开发环境下,前端通过 Vite 代理将 `/api` 请求转发到后端服务。
在 `vite.config.ts` 中配置代理:
```typescript
// ui/vite.config.ts
server: {
port: 8001, // 开发服务器端口(对应 VITE_PORT)
proxy: {
'/api': {
target: 'http://admin.thinkphp8.elevue/api', // 后端服务地址(对应 VITE_PROXY)
changeOrigin: true, // 开启跨域(修改请求头的 Origin)
rewrite: (path) => path, // 保持路径不变(不做路径替换)
},
},
}
```
确保后端服务已启动(`php think run`),然后访问 `http://localhost:8001`。
## 步骤五:验证前后端联调
1. 打开浏览器访问 `http://localhost:8001`
2. 应该看到登录页面
3. 输入默认账号 `admin` / `123456`
4. 登录成功后进入控制台页面
:::tip 代理原理
浏览器 → `http://localhost:8001/api/login` → Vite 代理 → `http://admin.thinkphp8.elevue/api/login` → 后端处理
:::
## 构建生产版本
```bash
# -----------------------------------------------------------------------------
# 构建生产版本(Vite 会压缩代码、Tree-shaking、分包)
# -----------------------------------------------------------------------------
# build → 输出到 ui/dist/ 目录
pnpm build
# -----------------------------------------------------------------------------
# 预览构建结果(本地启动一个静态文件服务器预览 dist/ 内容)
# -----------------------------------------------------------------------------
pnpm preview
```
构建完成后,`ui/dist/` 目录包含可部署的静态文件。
## 常见问题
### 1. `pnpm install` 报错
```bash
# -----------------------------------------------------------------------------
# 清除缓存重新安装(修复依赖冲突或缓存损坏)
# -----------------------------------------------------------------------------
# rm -rf → 递归强制删除(node_modules 和 lockfile)
rm -rf node_modules pnpm-lock.yaml
pnpm install
```
### 2. 端口 8001 被占用
修改 `.env.development` 中的 `VITE_PORT` 或 `vite.config.ts` 中的 `server.port`:
```typescript
server: {
port: 8002, // 改为其他端口(如 8002、8003 等)
}
```
### 3. API 请求 404
检查后端服务是否启动,以及代理配置是否正确:
```bash
# 确认后端在运行(直接请求后端登录接口)
# -X POST → POST 方法
# -H → 设置 Content-Type 为 JSON
# -d → 发送 JSON 请求体
curl http://admin.thinkphp8.elevue/api/login -X POST -H "Content-Type: application/json" -d '{"username":"admin","password":"123456"}'
```