忽略调试器; Node.js 中的语句,在调试会话期间
ignore debugger; statements in Node.js, during debug session
我有一个代码库,里面有很多
debugger;
声明。有时我调试,实际上我只想跳过所有调试器;语句并仅继续我为调试会话选择的手动设置的断点,是否有一些偶然的设置 Node.js 来做到这一点?
换句话说,我想将 debugger;
语句视为长期占位符,但对于某些调试会话,我想忽略那些长期占位符。
这可以通过 chrome 开发工具来完成。
你可以这样做:
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。
有选项disable/enable所有断点,chrome会记住你之前设置的所有断点。
请检查:--inspect
了解更多信息。
我过去使用的一个技巧是只使用 babel 去除调试器语句:
参见:
https://www.npmjs.com/package/babel-plugin-remove-debugger
快速而肮脏的方法(它用于调试,所以它真的很好)是在 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
开始节点
在此处使用全局变量,以便它可以是来自调试器 repl 的 enabled/disabled 或 chrome 的 repl(如果使用 --inspect
进行调试)。
从技术上讲,require.extensions 已弃用,但不会被删除,它可以按预期工作。
我有一个代码库,里面有很多
debugger;
声明。有时我调试,实际上我只想跳过所有调试器;语句并仅继续我为调试会话选择的手动设置的断点,是否有一些偶然的设置 Node.js 来做到这一点?
换句话说,我想将 debugger;
语句视为长期占位符,但对于某些调试会话,我想忽略那些长期占位符。
这可以通过 chrome 开发工具来完成。
你可以这样做:
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。
有选项disable/enable所有断点,chrome会记住你之前设置的所有断点。
请检查:--inspect
了解更多信息。
我过去使用的一个技巧是只使用 babel 去除调试器语句:
参见: https://www.npmjs.com/package/babel-plugin-remove-debugger
快速而肮脏的方法(它用于调试,所以它真的很好)是在 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
在此处使用全局变量,以便它可以是来自调试器 repl 的 enabled/disabled 或 chrome 的 repl(如果使用 --inspect
进行调试)。
从技术上讲,require.extensions 已弃用,但不会被删除,它可以按预期工作。