技术指标
包体积
G6Lite 的 size-limit 测量口径、120 kB brotli 预算与复现方法
G6Lite 使用 size-limit 对真实首屏入口和各布局使用路径进行体积约束。未加载布局时的初始入口保持 90 kB(minify + brotli) 门槛,初始入口加任一官方布局继续保持既有 120 kB 门槛。
测量口径
- 入口:
dist/index.js,对应import { Graph } from '@antv/g6-lite'。 - 范围:核心引擎、regl、事件依赖,以及用户实际选择的单个官方布局算法。
- 处理:size-limit 使用打包器模拟生产 bundle,执行 minify 与 brotli 压缩。
- 门槛:根目录
.size-limit.mjs分别约束初始入口和“初始入口 + 单个布局”的真实加载路径;官方布局由内部动态 import 按类型加载,用户无需手动注册。
复现
npm run build
npm run size2026-07-30 当前工作区结果为:初始入口 83.17 kB / 90 kB;各官方布局使用路径为 86.70–119.48 kB / 120 kB,其中 Dagre 当前最大。最新结果以当前 checkout 执行 npm run size 为准。
使用建议
- 从包根导入公开 API,让业务打包器可以正确分析依赖。
- 使用支持 tree-shaking 的 Vite、Rollup、esbuild 或等价工具;包已声明
sideEffects: false。 - 生产 CDN 开启 brotli 或 gzip,并以业务最终 bundle analyzer 结果评估真实增量。
- 不把 G6Lite 与功能范围、依赖口径不同的图库做未经复现的体积倍数比较。
体积门槛是工程约束,不代表所有业务只增加同等下载量;业务打包器版本、去重策略和已有共享依赖都会影响最终结果。