我正在为i2c设备开发一个Node-Red节点,但无法调试代码,因为它不会在断点处停止。
Node-Red(2.1.3)+ Visual Studio代码(v1.61.1)都安装在同一个树莓派操作系统(32位)上。
我不想调试整个NR系统,也不想调试node.js,只想调试我在VSCode中工作的那个节点(.js文件),并在VSCode中看到错误。(不在浏览器的调试器中)
我尝试了很多方法来调整launch.json
+ package.json
,在.js文件中添加debugging
行,等等。
我发现了两个配置,它们可以毫无错误地启动Node-red,但在运行过程中它永远不会停止。
软件包. json:
"scripts": {
"inspect": "node --inspect /usr/lib/node_modules/node-red/red.js --userDir /home/pi/.node-red/node_modules/mcp-pfc-aio",
"start": "node node_modules/node-red/red.js -v -u . -s settings.js",
"debug": "node --nolazy --inspect-brk=9229 node_modules/node-red/red.js -v -u . -s settings.js"
},
启动.json:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"name": "Run Script: debug MCP3",
"program": "/usr/lib/node_modules/node-red/red.js",
"mode": "debug",
"cwd": "/home/pi/.node-red/",
"skipFiles": [
"<node_internals>/**"
],
//"runtimeExecutable": "npm",
"runtimeArgs": ["--preserve-symlinks", "--experimental-modules"],
"request": "launch"
//"command": "npm run debug",
},
{
"type": "node",
"request": "launch",
"mode": "debug",
"name": "Launch via NPM",
"runtimeExecutable": "npm",
"runtimeArgs": [
"--preserve-symlinks", "--experimental-modules",
"run-script",
"inspect"
],
"program": "/usr/lib/node_modules/node-red/red.js",
"stopOnEntry": true,
// "cwd": "/home/pi/.node-red/",
// "cwd": "${workspaceRoot}",
"port": 9229,
"skipFiles": [
"<node_internals>/**"
]
}
]
}
2条答案
按热度按时间mf98qq941#
我通常不使用视觉代码,但我想我已经得到了这个工作。
/home/pi/test
/home/pi/.node-red
中,我运行npm install /home/pi/test
来安装节点(这将把dev目录符号链接到node_modules
目录)。然后,在下一步中使用该值
node-red
条目添加到节点的package.json
文件的脚本部分:test.js
。package.json
启动node-red
脚本f0ofjuux2#
我有以下设置:
1.为VSCode安装远程SSH扩展
1.为在远程计算机上运行node-red进程的用户设置SSH连接。我更喜欢基于密钥的身份验证,但这并不重要
1.从VSCode检查连接(F1-〉调试:远程SSH:连接到主机...)
1.这个扩展很聪明,读取ssh配置文件。例如,我的
~/.ssh/config
文件包含以下行:我的VSCode列出了以下
你可以看到,我的远程服务器上有一个
node-red
用户,这个用户运行node-red服务。1.您可以连接到节点进程(F1-〉Debug:attach to node process),并选择红色节点用户
正在运行的进程
在功能节点中插入
debugger
关键字,VSCode将停止,您可以自由调试。