pnpm build的时候输出信息:[PLUGIN_TIMINGS] Your build spent significant time in plugins. Here is a breakdown
pnpm build的时候输出信息:
✔ [@deepseek-ai/dsh-repeat-tool-reminder] Build complete in 25172ms
✔ [@deepseek-ai/dsh-workspace] Build complete in 25172ms
[PLUGIN_TIMINGS] Your build spent significant time in plugins. Here is a breakdown:
- tsdown:deps (77%)
- dsh-typert-generator (23%)
See https://rolldown.rs/options/checks#plugintimings for more details.
✔ [@deepseek-ai/dsh-agent-presets] Build complete in 25173ms
ℹ [@deepseek-ai/dsh-host-directory-picker-native] [ESM] lib/index.js 10.79 kB │ gzip: 3.96 kB
ℹ [@deepseek-ai/dsh-host-directory-picker-native] [ESM] lib/invariant.js 0.94 kB │ gzip: 0.48 kB
ℹ [@deepseek-ai/dsh-host-directory-picker-native] [ESM] 2 files, total: 11.72 kB
✔ [@deepseek-ai/dsh] Build complete in 25175ms
✔ [@deepseek-ai/dsh-host-apiproxy] Build complete in 25175ms
ℹ [@deepseek-ai/dsh-llm-deepseek] lib/index.js 30.68 kB │ gzip: 9.76 kB
ℹ [@deepseek-ai/dsh-llm-deepseek] lib/invariant.js 0.90 kB │ gzip: 0.48 kB
ℹ [@deepseek-ai/dsh-llm-deepseek] 2 files, total: 31.59 kB
ℹ [@deepseek-ai/dsh-llm-pi-ai] lib/index.js 79.41 kB │ gzip: 23.35 kB
ℹ [@deepseek-ai/dsh-llm-pi-ai] lib/invariant.js 0.89 kB │ gzip: 0.48 kB
ℹ [@deepseek-ai/dsh-llm-pi-ai] 2 files, total: 80.30 kB
[PLUGIN_TIMINGS] Your build spent significant time in plugin `dsh-typert-generator`. See https://rolldown.rs/options/checks#plugintimings for more details.
[PLUGIN_TIMINGS] Your build spent significant time in plugin `dsh-typert-generator`. See https://rolldown.rs/options/checks#plugintimings for more details.
[PLUGIN_TIMINGS] Your build spent significant time in plugins. Here is a breakdown:
- dsh-typert-generator (64%)
- tsdown:deps (36%)
See https://rolldown.rs/options/checks#plugintimings for more details.
文心说
这段日志表明你的项目正在使用 Rolldown(一个基于 Rust 重写、旨在替代 Rollup/Vite 默认打包器的高性能构建工具)进行构建。
核心信息可以拆解为两部分:正常的构建完成信息和性能警告信息。
1. 核心警告:[PLUGIN_TIMINGS] 是什么意思?
这是 Rolldown 新增的“耗时雷达”功能(Plugin Timings)。它检测到你的构建过程中,插件(Plugins)消耗了异常多的时间,从而拖慢了整体构建速度。
触发原因:Rolldown 内部统计发现,插件阶段的耗时(TpluginTplugin)远超链接阶段耗时(TlinkTlink)的一定倍数(通常阈值为 100 倍,或占比显著过高)。
具体瓶颈:
tsdown:deps (77% / 36%):这是处理 TypeScript 依赖解析和转换的插件。在第一次出现时占用了 77% 的时间,说明依赖分析非常重。
dsh-typert-generator (23% / 64%):这是一个自定义插件(看起来是 DeepSeek Harness 相关的类型生成器)。在后续构建中,它成为了主要的性能杀手,占用高达 64% 的插件耗时。
为什么会出现多次:因为你是一个 Monorepo(多包仓库)结构,@deepseek-ai/dsh-repeat-tool-reminder、@deepseek-ai/dsh-workspace 等多个子包分别进行了构建,每个子包构建结束时都会独立检查并输出自己的插件耗时报告。
2. 其他日志含义
✔ [@deepseek-ai/xxx] Build complete in 25172ms:
表示对应的子包构建成功。
25172ms 是构建耗时(约 25 秒)。对于包含复杂类型生成的 TS 项目来说,这个速度取决于项目规模,但 Rolldown 的目标是比传统工具更快。
ℹ [@deepseek-ai/xxx] [ESM] lib/index.js ...:
这是构建产物的大小报告。
显示了生成的 JS 文件原始大小和 Gzip 压缩后的大小。例如 dsh-llm-pi-ai 生成的 index.js 约为 79KB,Gzip 后约为 23KB。
3. 你该怎么做?
情况 A:如果你是普通开发者(仅使用这些包)
无需操作。这只是性能提示,不是错误(Error)。构建已经成功(✔),你可以正常使用生成的产物。
如果构建速度在你可接受范围内,可以忽略此警告。
情况 B:如果你是项目维护者或插件开发者(想优化速度)
这个警告明确指出 dsh-typert-generator 和 tsdown:deps 是瓶颈。你可以尝试以下优化:
优化 dsh-typert-generator 插件:
检查该插件是否在每次构建时都重复执行了昂贵的类型计算。
是否引入了缓存机制?(例如缓存已生成的类型文件,仅在源文件变更时重新生成)。
是否可以在非必要时跳过执行?
优化 TypeScript 依赖处理 (tsdown:deps):
检查 tsconfig.json 中的 include/exclude,确保没有不必要地扫描大型目录(如 node_modules 或巨大的测试数据集)。
考虑使用更轻量的类型检查策略,或在构建阶段禁用严格的类型检查(如果仅在 CI 或专门步骤中做类型检查)。
关闭警告(如果不想看到):
如果你确认当前速度可接受,可以在 rolldown.config.ts (或 vite.config.ts) 中关闭此检查:
typescript
export default defineConfig({
build: {
rolldownOptions: {
checks: {
pluginTimings: false // 关闭插件耗时警告
}
}
}
})
总结
构建状态:成功。
主要问题:构建速度慢,瓶颈在于 dsh-typert-generator(类型生成插件)和 tsdown:deps(TS 依赖处理)。
建议:如果不关心构建速度,可忽略;如果关心,需针对上述两个插件进行性能优化或缓存策略调整。
更多推荐
所有评论(0)