mirror of
https://github.com/ialley-workshop-open/uni-halo.git
synced 2026-09-12 16:40:40 +08:00
1.5 KiB
1.5 KiB
性能与分包规范
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. 包体积日常检查
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 库)优先按需引入