# 9.3 环境与构建配置 :::tip 概述 前端构建基于 Vite 多环境模式:dev/test/uat/prod 四套构建命令 + 环境变量文件。开发环境经 Vite proxy 代理 /api 到后端;生产构建产物交 Nginx 托管。 ::: ## 构建命令(package.json) ```sh pnpm dev # 开发服务器(vite) pnpm build # production 模式构建 + postBuild 后处理 pnpm build:prod # --mode production pnpm build:uat # --mode uat pnpm build:test # --mode test pnpm build:dev # --mode dev pnpm preview # 构建 + vite preview 本地预览 pnpm type:check # vue-tsc --noEmit --skipLibCheck ``` 构建产物经 `build/script/postBuild.ts` 后处理输出 `dist/`。 ## Vite 配置要点(vite.config.ts) ```text 关键配置: * Vite 端口与 host * proxy:/api → http://127.0.0.1:8000(开发代理,同源化) * 别名 @ → src * unplugin-auto-import / 组件自动注册等工程插件 ``` 开发代理让前端"同源"访问后端——dev 环境无 CORS 问题;生产建议 Nginx 同域反代 /api。 ## 环境变量 ```text .env.development / .env.test / .env.uat / .env.production 常用键(以项目实际文件为准): VITE_PORT 开发端口(默认 8001) VITE_PUBLIC_PATH 部署公网路径(子路径部署时配置) VITE_GLOB_API_URL API 地址(baseURL,一般留空,由前缀拼接) VITE_GLOB_API_URL_PREFIX API 版本前缀(/api,与后端公开路径规则配套) VITE_GLOB_UPLOAD_URL 上传接口地址 VITE_GLOB_IMG_URL 图片服务地址(对应后端 file.domainUrl) ``` 代码经 `useGlobSetting()`(hooks/setting)读取环境变量,统一收敛不散落。 ## baseURL 与代理的配合 ```text 开发:axios baseURL = /api → Vite proxy 转发 :8000 生产:axios baseURL = /api → Nginx location /api/ 反代后端 注意:接口 url 在 api 模块里不写 /api 前缀(如 '/user/page'), baseURL 已含 /api;后端 gmeta path 是 /api/user/page——两层拼接对齐。 无 /v1 版本段:不要拼 /v1。 ``` ## lint 与质量工具 | 工具 | 命令 | 作用 | |------|------|------| | ESLint | pnpm lint:eslint | TS/Vue 代码检查修复 | | Prettier | pnpm lint:prettier | 格式化 | | Stylelint | pnpm lint:stylelint | 样式检查 | | commitlint | (husky 提交钩子) | 提交信息规范 | | vue-tsc | pnpm type:check | 类型检查 | ## 生产部署形态 ```text Nginx: location / → 静态资源 dist/ location /api/ → 反代后端 :8000 location /upload/ → 反代后端(或直挂文件服务/CDN) try_files $uri $uri/ /index.html (SPA 路由回退) 子路径部署:VITE_PUBLIC_PATH=/admin/ + Nginx location /admin/ 详见 11.5 前端部署 ```