[英]Can I run/debug Heroku Node.js app locally with VSCode?
在Microsoft VSCode v1.6.1上 ,如何:
我创建了一个Heroku Node.js应用程序,它使用CLI命令启动:
heroku local web
并成功从5000端口开始。
我正在尝试使用Microsoft Visual Studio Code调试它,使用以下launch.json
配置:
{
"name": "Launch",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/app.js",
"stopOnEntry": false,
"args": [],
"cwd": "${workspaceRoot}",
"preLaunchTask": null,
"runtimeExecutable": "/usr/local/bin/heroku",
"runtimeArgs": [
"local web",
],
"env": {
"NODE_ENV": "development"
},
"console": "internalConsole",
"sourceMaps": false,
"outFiles": []
}
但VSCode自动将--debug-brk
参数传递给heroku,导致错误:
/usr/local/bin/heroku --debug-brk=23080 'local web' app.js
! `--debug-brk=23080` is not a heroku command.
! See `heroku help` for a list of available commands.
VSCode也没有找到没有完整路径的heroku命令(似乎它没有加载PATH
环境变量)。
有关如何设置编辑器的任何想法?
以下解决方案适合我:
1)在procfile中,将参数--debug添加到节点进程
web: node --debug server.js
默认情况下,调试器侦听端口5858
2)运行节点进程后,打开VSCode并将以下配置添加到launch.json文件中
{
"type": "node",
"request": "attach",
"name": "Attach to Process",
"port": 5858
}
3)最后,单击VSCode中的播放按钮,选择“附加到进程”,它应该调试您的进程。
以下解决方案对我有用。 在我的package.json“脚本”中,我补充说:
"debug": "node --inspect-brk server.js"
然后,在launch.json中,我将一个envFile条目添加到默认的“通过NPM启动”配置,现在看起来像这样:
{
"type": "node",
"request": "launch",
"name": "Launch via NPM",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script",
"debug"
],
"port": 9229,
"envFile": "${workspaceFolder}/.env"
}
上述解决方案使VSCode调试器能够通过npm脚本运行我的服务器,并且我的服务器使用我的.gitignore'd .env文件中设置的env vars运行,就像在“常规” Heroku node.js工作流中一样 。
由于某些原因,我提出的解决方案对我不起作用,因此我一直在努力。 但是,另一种解决方案确实如此,我想我会分享。
从VS Code中的默认调试选项中选择Attach by Process ID
当您使用此配置启动调试器时,它应列出要附加到的可用进程,其中一个应该只是server.js。 这需要每次手动附加,如果其他自动附件适合您,可能会更好,但这仍然是一个可行的解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.