dump文件由Node.js进程生成而非VSCode,需显式启用--experimental-report并指定--report-directory确保路径存在可写;Windows无SIGUSR2,仅能依赖--report-on-fatalerror或Ctrl+Break触发。

dump 文件不是 VSCode 生成的,是 Node.js 进程写的
很多人以为 dump 文件是 VSCode 自己生成的,所以想在设置里关掉它——但其实不是。node-report 是 Node.js 原生模块,dump 文件由 Node 进程在收到信号(如 SIGUSR2)或发生 FATAL ERROR 时主动写入磁盘。VSCode 只是启动了这个进程,不参与 dump 生成逻辑。所以你找不到“关闭 dump 生成”的开关,只能控制它的触发条件和输出路径。
为什么 dump 文件总出现在项目根目录或奇怪位置?
node-report 默认把 dump 写到 process.cwd(),而 VSCode 终端的工作目录不等于你打开的文件夹,尤其用 code . 从子目录启动时,process.cwd() 可能是 src/ 或 test/。更麻烦的是:launch.json 里的 cwd 字段对 --experimental-report 参数无效——调试器会接管进程启动流程,导致参数被忽略。
- 必须显式指定
--report-directory,且该路径需存在、可写 - 推荐写成绝对路径,比如
--report-directory=/tmp/node-dumps(macOS/Linux)或--report-directory=C:\temp\node-dumps(Windows) - 不要依赖
./dumps这类相对路径,容易因 cwd 不一致而失败 - 确保目标目录有写权限;Linux/macOS 下注意 SELinux 或 sandbox 限制
如何让 dump 文件不干扰开发界面?
既然不能禁止生成,就让它“看不见”:用 VSCode 的 files.exclude 把 dump 文件从资源管理器中过滤掉。注意这不是删除,只是视觉隐藏,不影响后续分析。
- 打开命令面板(
Ctrl+Shift+P),运行Preferences: Open Workspace Settings (JSON) - 在
files.exclude中添加规则,例如:"**/*.json": true(如果 dump 是 JSON 格式)或更精准的"**/node-report-*.json": true - 若 dump 文件名含时间戳或 PID,用通配符覆盖:
"**/node-report-*.json": true、"**/report-*.json": true - 别只配
search.exclude——它只影响搜索结果,资源管理器照常显示
Windows 用户特别注意 SIGUSR2 不可用
你在 macOS/Linux 上用 kill -SIGUSR2 手动触发 dump,但在 Windows 上这信号根本不存在。此时唯一可靠方式是靠 --report-on-fatalerror,或者手动按 Ctrl+Break(不是 Ctrl+C)向进程发中断信号。如果你发现 Windows 下 dump 总不生成,先确认是否漏掉了这个关键差异。
真正容易被忽略的是:dump 文件一旦生成,就可能被 Git 误提交、被 IDE 索引拖慢响应、甚至被某些杀毒软件误报。所以路径隔离 + files.exclude 双保险,比事后清理更省事。











