为了分析和优化开发环境的构建速度,我们在 config/dev.ts 中集成了 BuildTimerPlugin,用于测量:
npm run dev:h5
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔨 [构建 #1] 首次编译开始... 22:15:30
✅ [构建 #1] 编译完成! 22:16:15
⏱️ 耗时: 45.23s (45230ms)
📊 模块数: 1234
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔨 [构建 #2] 增量编译开始... 22:16:45
✅ [构建 #2] 编译完成! 22:16:48
⏱️ 耗时: 3.45s (3450ms)
📊 模块数: 1234
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
清理缓存(可选,确保公平对比)
npm run clean:cache
bash
npm run dev:h5
记录 首次编译 的时间
⏱️ 耗时: 45.23s (45230ms)src/app.tsx),添加一个空格或注释⏱️ 耗时: 3.45s (3450ms)为了获得更准确的数据,建议:
项目:zsis
测试日期:2025-12-28
测试环境:
- 操作系统:Windows 11
- CPU:[记录你的 CPU]
- 内存:[记录你的内存]
- Node 版本:[运行 node -v]
- npm 版本:[运行 npm -v]
优化前基准:
┌─────────────┬──────────────┬────────────┐
│ 编译类型 │ 平均耗时 │ 模块数 │
├─────────────┼──────────────┼────────────┤
│ 首次编译 │ ____ s │ ____ │
│ 增量编译 │ ____ s │ ____ │
└─────────────┴──────────────┴────────────┘
优化后对比:
(在实施优化后填写)
┌─────────────┬──────────────┬────────────┬──────────┐
│ 编译类型 │ 平均耗时 │ 模块数 │ 提升幅度 │
├─────────────┼──────────────┼────────────┼──────────┤
│ 首次编译 │ ____ s │ ____ │ __% │
│ 增量编译 │ ____ s │ ____ │ __% │
└─────────────┴──────────────┴────────────┴──────────┘
基于 Taro + Webpack 5 项目的一般经验:
| 编译类型 | 小型项目 | 中型项目 | 大型项目 |
|---|---|---|---|
| 首次编译 | 10-20s | 20-40s | 40-90s |
| 增量编译 | 1-3s | 2-5s | 3-8s |
你的项目属于大型项目(医学影像系统,包含 Cornerstone.js 等大型库)。
如果你的构建时间超过以下阈值,说明存在性能问题:
一旦建立了性能基准,可以按以下顺序进行优化:
// config/dev.ts
sourceMapType: 'cheap-module-source-map', // 改为这个
只在生产环境强制编译 node_modules 中的包。
使用多线程并行编译 TypeScript。
用 esbuild 替代 Babel,显著提升编译速度。
原因: 可能是配置文件没有正确加载
解决:
config/dev.ts 已保存可能原因:
解决:
如果模块数量在增量编译时仍然很大(接近首次编译的数量):
node_modules/.cache/webpack-h5 目录是否存在创建日期: 2025-12-28
版本: v1.0.0