该项目的设置是基于Express应用程序生成器生成的基本Express应用程序。
该项目vscode-debugging-node可在GitHub上获取。
请参考Visual studio Code - 调试Node应用程序中的屏幕录像。
项目根目录下的Gruntfile.js
管理开发过程。 Gruntfile.js
的目的很简单,它启动服务器并监视任何文件更改。
检测到所需文件的更改时,它会重新启动服务器(杀死现有进程并启动新进程)。
Gruntfile.js
使用./task/server.js
来启动/重新启动服务器。
Gruntfile.js
以这种方式开发,后期将合并cookie管理,以提供登录体验。
在执行$ grunt start
任务时,如果传递了名为NODE_INSPECTOR = *
的env
变量,则服务器将在--debug
mode下启动。
当以--debug
模式执行grunt任务时,可以与node-inspector
并行运行,并使用Chrome调试完整应用程序。
参考Visual Studio Code中的调试,我尝试通过更新.settings/launch.json
来实现相同的内容,其中包括"program": "/usr/local/bin/grunt"
,"args": ["start"]
和"env": {"NODE_INSPECTOR":"*"}
。
./task/server.js
而不是整个应用程序。我怀疑这可能是由于spawn
ed server引起的。您是否可以在Visual Studio Code中调试此类情况?如果可以,了解详细信息将非常有帮助。
./bin/www
,但这样我就失去了在文件更改时重新启动服务器的灵活性,这是非常理想的功能。使用纯 node-inspector 我可以实现它,请参考屏幕录像。我想知道在 VS Code 中是否也可能实现这一点。 - Sarbbottamlaunch.json
中更新了"address"
为"XX.XX.XXX.XX"
,并在--debug
模式下启动了远程服务器。当我尝试将远程服务器连接到调试器时,出现了“连接失败”错误。你能建议可能的问题吗?是否有任何日志可供查看详细信息?我可以通过ssh登录我的机器,并且当我执行node-inspector时,我可以访问http://XX.XX.XXX.XX:8080/debug?ws=XX.XX.XXX.XX:8080&port=5858上的node-inspector调试器。 - Sarbbottam