我有一个代码库,我有很多
debugger;
语句。有时我调试,我实际上只是想跳过所有的调试器;语句并继续只为我为调试会话选择的手动设置断点,Node.js是否有机会设置断点?
换句话说,我想将debugger;
语句视为长期占位符,但对于某些调试会话,我想忽略这些长期占位符。
答案 0 :(得分:6)
可以使用chrome devtools完成。
你可以这样做:
node --inspect --debug-brk index.js
将生成如下内容:
chrome-devtools://devtools/remote/serve_file/@60cd6e859b9f557d2312f5bf532f6aec5f284980/inspector.html?experiments=true&v8only=true&ws=localhost:9229/9c2e4f37-4c3a-4477-b8da-2399c5d9819e
只需将其复制并粘贴到Chrome上即可。
可以选择禁用/启用所有断点,chrome会记住您之前设置的所有断点。
请查看:--inspect
了解详情。
答案 1 :(得分:3)
我过去使用的一个技巧就是使用babel删除调试器语句:
请参阅: https://www.npmjs.com/package/babel-plugin-remove-debugger
答案 2 :(得分:3)
快速而肮脏的方式(它用于调试,实际上很好)是在scripts / debugger.js中粘贴类似下面的脚本
require.extensions['.js'] = function(module, filename) {
var content = fs.readFileSync(filename, 'utf8').replace(/debugger/g, [
'(function() {',
' if (__debugger) {',
' debugger;',
' }',
'})',
].join('\n'));
module._compile(content, filename);
};
然后使用node -r ./scripts/debugger
在此处使用全局变量,以便在使用--inspect
进行调试时,可以从调试器repl或chrome的重新启用/禁用它。
技术上不推荐使用require.extensions,但它不会被删除,而且它可以按预期工作。