Initial commit

This commit is contained in:
2026-01-28 20:44:34 +08:00
commit 500e8b74a7
236 changed files with 29886 additions and 0 deletions

View File

@@ -0,0 +1,67 @@
# 生产构建优化说明
## 已实现的优化
### 1. 代码混淆和压缩
- 使用 **Terser** 进行代码压缩和混淆
- 移除所有 `console.log``console.info``console.debug` 语句
- 移除 `debugger` 语句
- 启用变量名混淆 (mangle)
- 移除所有注释
### 2. 文件合并
- 禁用代码分割 (`inlineDynamicImports: true`)
- 将所有 JavaScript 代码合并为 **单个 JS 文件**
- 将所有 CSS 代码合并为 **单个 CSS 文件**
### 3. 构建结果
生产构建后只会生成以下文件:
```
dist/
├── index.html (0.48 kB | gzip: 0.34 kB)
├── assets/
│ ├── css/
│ │ └── style-[hash].css (103.61 kB | gzip: 17.41 kB)
│ └── js/
│ └── index-[hash].js (535.46 kB | gzip: 155.91 kB)
```
### 4. 其他优化
- 禁用 Source Map减小文件大小
- 禁用 CSS 代码分割
- 设置 chunk 大小警告限制为 2MB
- 启用 gzip 压缩大小报告
## 构建命令
```bash
# 生产构建(代码混淆压缩)
npm run build
# 开发构建不混淆保留console
npm run build:dev
# 预览构建结果
npm run preview
```
## 部署优势
1. **简化部署**:只需部署 3 个文件index.html + 1个CSS + 1个JS
2. **减少请求**单个JS文件减少HTTP请求次数
3. **代码保护**:代码混淆和压缩,增加逆向工程难度
4. **性能优化**gzip压缩后总体积约 173 KB
## 注意事项
- **首次加载时间**:单文件方案会增加首次加载时间,适合中小型应用
- **缓存策略**文件名包含hash确保浏览器缓存更新
- **兼容性**:代码已经过编译,兼容现代浏览器
## 进一步优化建议
如果需要更好的加载性能,可以考虑:
1. 启用代码分割(移除 `inlineDynamicImports`
2. 按需加载路由组件
3. 启用 CDN 加速
4. 服务端启用 Brotli 压缩(比 gzip 更好)