Chromium DevTools无法触发node_modules断点?如何禁用跳过设置
解决Chromium DevTools不暂停node_modules中断点的问题
问题重现
代码示例
a.js:
console.log('a.js'); require('./b');
b.js:
debugger; console.log('b.js'); require('userhome');
操作步骤
$ npm i userhome@1.0.0 # 向node_modules/userhome/index.js添加两行代码: # debugger; # console.log('userhome'); $ node --inspect-brk a.js
在Chromium打开about:inspect连接调试进程后,b.js的断点能正常暂停,但node_modules/userhome/index.js里的断点会被直接跳过,程序直接运行结束。该问题出现在Chromium 121.0.6167.184 + Node.js v21.6.1环境,而Chromium 115.0.5790.102 + Node.js v20.4.0环境下功能正常。
原因
新版Chromium(含Chrome)的DevTools默认把node_modules目录归为「无兴趣代码」,自动跳过该目录下的断点和调试语句。
解决方法
1. 调整DevTools忽略规则
- 打开DevTools设置:按
F1或点击右上角三个点→Settings - 切换到Debugger标签,找到Ignored files列表,删除
node_modules/**相关的忽略规则,或者直接清空列表临时测试 - 如果找不到上述选项,去Experiments标签,先勾选左上角的
Enable experiments,再勾选Disable ignoring of scripts from node_modules
2. 用Node.js启动参数强制关闭忽略
启动调试时添加--no-inspect-ignore-node-modules参数:
$ node --inspect-brk --no-inspect-ignore-node-modules a.js
3. 单独取消单个文件的忽略
在DevTools的Sources面板找到目标文件(比如node_modules/userhome/index.js),右键点击文件名,选择Unignore script,仅让该文件的断点生效。
排查验证
- 修改设置后重启调试会话,再次按F8执行,检查断点是否触发
- 关闭所有Chromium扩展(包括NiM),排除扩展干扰
- 在目标文件中加入
console.log(__filename),通过Console面板确认文件路径是否被正确识别
内容的提问来源于stack exchange,提问作者x-yuri
相关产品推荐
相关产品推荐

