Files
web_tcm/ENV_CONFIG.md
2026-06-12 09:00:45 +08:00

201 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.
# WebUI 环境配置说明(简化版)
## 概述
项目支持三种环境模式开发环境development、测试环境test和生产环境production。通过环境变量文件自动区分不同配置。
## 环境模式
### 1. 开发环境 (Development)
**特性:**
- 热模块替换HMR
- Vue DevTools 调试工具
- Source Map 支持
- 完整日志输出debug 级别)
**配置文件:** `.env.development`
**启动命令:**
```bash
npm run dev
```
---
### 2. 测试环境 (Test)
**特性:**
- 热模块替换HMR
- Source Map 支持
- Vue DevTools 调试工具
- 完整日志输出debug 级别)
**配置文件:** `.env.test`
**启动命令:**
```bash
vite --mode test
```
---
### 3. 生产环境 (Production)
**特性:**
- 代码压缩Terser
- 移除 console 日志和 debugger
- 资源优化和代码分割
- 禁用 Source Map
- 仅错误级别日志
**配置文件:** `.env.production`
**构建命令:**
```bash
npm run build
```
**预览构建结果:**
```bash
npm run preview
```
---
## 环境变量
| 变量名 | 说明 | 开发环境 | 测试环境 | 生产环境 |
|--------|------|----------|----------|----------|
| VITE_APP_TITLE | 应用标题 | EIOT Web UI (Development) | EIOT Web UI (Testing) | EIOT Web UI |
| VITE_API_BASE_URL | API 基础地址 | http://127.0.0.1:9001/ | http://test-api.eiot.com/ | http://www.huashengtec.com:9001/ |
| VITE_APP_ENV | 环境标识 | development | test | production |
| VITE_ENABLE_DEVTOOLS | 是否启用 DevTools | true | true | false |
| VITE_ENABLE_SOURCE_MAP | 是否生成 Source Map | true | true | false |
| VITE_LOG_LEVEL | 日志级别 | debug | debug | error |
---
## 工具类
### Logger (日志工具)
位置:`src/utils/logger.js`
根据环境配置自动过滤日志级别:
- `debug()` - 调试信息(仅开发/测试环境)
- `info()` - 一般信息(仅开发/测试环境)
- `warn()` - 警告信息(所有环境)
- `error()` - 错误信息(所有环境)
使用示例:
```javascript
import logger from '@/utils/logger'
logger.debug('调试信息')
logger.info('一般信息')
logger.warn('警告信息')
logger.error('错误信息')
```
### Performance Monitor (性能监控)
位置:`src/utils/performance.js`
提供性能监控功能(仅生产环境启用):
- `startTimer(name)` - 开始计时
- `endTimer(name)` - 结束计时并记录
- `getMetrics()` - 获取所有性能指标
- `init()` - 初始化性能监控
使用示例:
```javascript
import performanceMonitor from '@/utils/performance'
performanceMonitor.startTimer('api-request')
await fetchData()
performanceMonitor.endTimer('api-request')
```
---
## 使用说明
### 在代码中使用环境变量
```javascript
const apiUrl = import.meta.env.VITE_API_BASE_URL
const isDev = import.meta.env.VITE_APP_ENV === 'development'
```
### 使用 WebConfig
```javascript
import WebConfig from '@/utils/config'
console.log(WebConfig.HOST_BASE_URL)
console.log(WebConfig.APP_ENV)
console.log(WebConfig.LOG_LEVEL)
```
---
## 配置优化说明
### 简化内容
1. **vite.config.js** - 移除冗余配置项:
- 移除 `define` 配置(直接使用 `import.meta.env`
- 移除 `css.preprocessorOptions.scss`(未使用)
- 移除 `optimizeDeps`Vite 自动处理)
- 移除 `esbuild.drop`(已通过 Terser 处理)
- 移除默认的 `target``outDir``assetsDir`
- 移除 `chunkSizeWarningLimit``reportCompressedSize`
- 移除 `server.strictPort``server.watch`
- 简化环境判断逻辑
2. **logger.js** - 简化为函数对象:
- 移除类定义,改为简洁的对象字面量
- 简化日志级别判断逻辑
- 使用短路运算符优化条件判断
3. **performance.js** - 简化为函数对象:
- 移除类定义,改为简洁的对象字面量
- 移除未使用的 `mark()``measure()` 方法
- 移除 Web Vitals 监控(复杂度高,收益低)
- 合并页面加载和资源监控逻辑
4. **package.json** - 简化脚本命令:
- 移除 `--mode` 参数Vite 自动根据命令选择环境)
- 移除冗余的 `dev:test``build:test` 等命令
- 保留核心命令:`dev``build``preview`
### 保持的功能
- ✅ 开发环境热重载
- ✅ Vue DevTools 调试工具
- ✅ Source Map 支持
- ✅ 生产环境代码压缩
- ✅ 生产环境移除 console 和 debugger
- ✅ 代码分割优化
- ✅ 日志级别控制
- ✅ 性能监控(生产环境)
---
## 开发建议
1. **日常开发**:使用 `npm run dev` 启动开发服务器
2. **功能测试**:使用 `vite --mode test` 连接测试环境
3. **部署前**:使用 `npm run build` 构建生产版本
4. **预览构建**:使用 `npm run preview` 预览生产构建结果
---
## 注意事项
1. **敏感信息**:不要在 `.env.*` 文件中存储敏感信息
2. **Git 忽略**`.env.local` 文件已添加到 `.gitignore`
3. **环境切换**:修改环境变量后需要重启开发服务器
4. **构建验证**:生产环境构建前务必在测试环境充分验证