用途:用于降低 Next.js 16 应用的打包体积、First Load JS、路由包体积,以及诊断和改善生产构建过慢的问题。也可用于分析某个依赖为何变大、设置并迭代执行性能预算。
主要能力:编排 next experimental-analyze、构建、类型检查与测试;脚本化完成基线、分析、诊断、测量、对比与验证,并强制“一次只改一处、测量后再提交或回滚”的流程。
使用方式:首次运行 bash scripts/baseline.sh --setup 交互式生成 config.json。后续流程脚本:scripts/baseline.sh 建立基线(输出 baselines/{ts}/ 下的 bundle、timing、manifest);scripts/analyze.sh 产出 iterations/{n}/findings.json;scripts/diagnose.sh 映射优化配方;scripts/measure.sh 复测;scripts/compare.sh 对比并在回归时退出码为 1;scripts/verify.sh 通过则为 0、可提交,失败则回滚。配方目录 references/optimizations.md,覆盖 barrel 导入膨胀、重客户端库、服务端库误入客户端、重复依赖、polyfill 膨胀、图标逐项导入,以及构建耗时相关项。
前提与限制:需要 Next.js 16+ 项目、git、PATH 中的 jq,以及干净的 git 工作区。Next.js 15 及更早的 webpack 模式会改用 @next/bundle-analyzer。注意 Turbopack 下 optimizePackageImports 无效;next build 不再输出 First Load JS;比较构建时间需控制缓存状态。相关技能:vercel:nextjs、vercel:turbopack、vercel:next-cache-components。