是否有命令行参数或环境变量禁用节点调试器的“第一行中断”功能?
7 回答
node 中实际上有两个调试器概念:V8 调试器(具有基于 TCP 的协议)和 node 命令行调试器 (CLI)。
当您运行时node debug app.js
,调试器 CLI 将在主节点进程中运行,并为调试脚本 ( node --debug-brk app.js
) 生成一个新的子节点进程。选项--debug
or--debug-brk
用于在子进程中开启 V8 调试器。
--debug
和之间的区别在于--debug-brk
后者在第一行添加了一个断点,因此执行立即停止在那里。
我会建议你这个解决方案:
在自己寻找答案时发现了这个 - 似乎你可以简单地运行
node-debug --debug-brk=0 (progname)
希望这可以帮助某人。
我只是通过从节点 v6 切换到 v7 解决了同样的问题
编写一个chrome扩展来点击开始按钮
1.运行shell
mkdir run_as_devtools
cd run_as_devtools
touch manifest.json
touch run_as_devtools.js
2. 编辑文件
run_as_devtools.js:
if (location.protocol === 'chrome-devtools:' && location.href.match(/ws=localhost/))(function () {
'use strict';
setTimeout(function () {
try {
document.querySelector('html /deep/ .long-click-glyph').click();
} catch (e) {
console.log(e);
}
}, 500);
})();
manifest.json:(它使用 chromevox 的密钥,所以不要与 chromevox 一起使用)
{
"content_scripts": [{
"js": [ "run_as_devtools.js" ],
"matches": [ "<all_urls>" ]
}],
"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEGBi/oD7Yl/Y16w3+gee/95/EUpRZ2U6c+8orV5ei+3CRsBsoXI/DPGBauZ3rWQ47aQnfoG00sXigFdJA2NhNK9OgmRA2evnsRRbjYm2BG1twpaLsgQPPus3PyczbDCvhFu8k24wzFyEtxLrfxAGBseBPb9QrCz7B4k2QgxD/CwIDAQAB",
"manifest_version": 2,
"name": "Elevated Devtools extension",
"version": "1.0"
}
3.安装扩展
Chrome设置-更多工具-扩展-开发者模式-加载解压扩展-选择run_as_devtools文件夹
PS 最好将它与节点检查器管理器一起使用https://stackoverflow.com/a/43018133/4831179
这对我有用。
node --inspect index.js
如果您尚未安装 inspector,请按照节点文档的建议安装它:
npm install -g node-inspect
类似于 blackmiaool 的想法,但更简单,使用 node v8,您可以使用 --inspect 启动脚本。如果您有以下代码,当您在 Chrome devtools 中打开调试窗口时,它会将您直接带到调试器点。此外,这允许您通过点击“继续”按钮来执行异步代码,这允许您的代码在返回到 repl 之前运行:
// app_shell.js
var UserModel = require("./some_user_model");
function looper() {
var Tmp = { UserModel: UserModel };
debugger;
setTimeout(looper, 100);
}
looper();
在 shell 脚本中,您可以执行以下操作:
echo "Click the 'Open dedicated DevTools for Node' link"
python -mwebbrowser about:inspect
node --inspect app_shell.js