1
0
mirror of https://github.com/ialley-workshop-open/uni-halo.git synced 2026-09-13 00:50:40 +08:00
Files
uni-halo/hermes/performance.md
T
2026-08-31 07:58:23 +08:00

35 lines
1.5 KiB
Markdown

# 性能与分包规范
## 1. 分包(微信主包 2M 硬限制)
- 分包目录放 `src/pages/` 之外,注册到 `vite.config.ts``UniPages({ subPackages })`
- 低频/独立业务(如 demo、设置二级页)优先进分包
- bundle-optimizer 已启用(仅微信端):支持模块异步跨包调用、组件异步跨包引用,分包间复用代码不需要复制
- 判断该不该分包:页面是否首屏必需?不是 → 分包
## 2. 构建内置优化(不要重复做)
| 优化 | 状态 | 说明 |
|------|------|------|
| console/debugger 移除 | `VITE_DELETE_CONSOLE=true` | 提交前不用手工删 console |
| sourcemap | 关闭 | 需要时改 vite.config.ts,勿长期开 |
| minify | esbuild | dev 不压缩、prod 压缩 |
| build target | es6 | 兼容低版本 WebView |
## 3. 包体积日常检查
```bash
pnpm build:h5 # H5 生产构建自动打开 visualizer 分析
# 产物:node_modules/.cache/visualizer/stats.html
```
小程序端看微信开发者工具的「代码依赖分析」。
## 4. 编码侧规则
- 静态图片:大图优先网络地址或压缩后放 `src/static`;SVG 图标走 `src/static/my-icons/`(i-my-icons-*)
- UnoCSS `safelist` 只加**动态拼接类名**,每加一项全量注入,能不用则不用
- 列表页一律 z-paging(虚拟分页),不手写 onReachBottom 加载
- auto-import(`src/hooks`)按名导入即用;注意 eslint 已关闭 no-unused-vars,未使用导入无守卫,删改代码时自查
- 新增第三方依赖前看体积:小程序端无 tree-shake 保障的库(如全量 UI 库)优先按需引入