Files
FileRelay/webapp/doc/BUILD_OPTIMIZATION.md
2026-01-28 20:44:34 +08:00

68 lines
1.9 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.
# 生产构建优化说明
## 已实现的优化
### 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 更好)