您好有办法调试部署在heroku服务器上的node.js应用。
我无法在本地调试,因为该应用正在接收来自第三方的一些帖子请求,而且我没有公共IP。
感谢。
答案 0 :(得分:13)
我不知道Heroku为什么不能更好地突出这一点,但是使用Heroku进行远程调试所需的文档就在Heroku Exec (SSH tunneling) page上。目前它的node.js信息需要一些更新才能支持更新的检查器协议,但重要的细节都在那里。
首先,您需要编辑项目树根目录下的Procfile
,告诉Heroku在启用调试的情况下启动Node:
web: node --inspect ./server.js (or ./app.js or whatever your entry point is)
然后,您需要使用Heroku CLI实用程序来隧道计算机和Heroku应用程序之间的调试端口。如果您尚未安装,请阅读有关如何安装该文档的文档并将其记录到您的Heroku帐户中。
要启用连接,您需要运行一次:
heroku ps:exec
或者如果您运行多个Heroku应用程序:
heroku ps:exec -a my-app-name
获得$
命令提示符后,按ctrl-C退出。
接下来,启动隧道:
heroku ps:forward 9229 [-a my-app-name]
现在,您的应用程序可从任何支持Node.js调试的IDE中获得。对于Visual Studio Code,您要创建一个launch.json
配置条目,如下所示:
{
"type": "node",
"request": "attach",
"name": "Heroku",
"address": "localhost",
"port": 9229,
"protocol": "inspector",
"localRoot": "${workspaceFolder}",
"remoteRoot": "/app"
},
您现在应该可以在编辑器中启动调试会话,并在几秒钟内将其连接到正在运行的应用程序。所有正常的调试功能,包括断点,调用堆栈,变量检查等都应该有效。
答案 1 :(得分:6)
答案 2 :(得分:0)
2019 Webstorm 2019.2的答案
变化不大,但仍然:
创建文件名Procfile
(无扩展名)->对其进行编辑:
web: node --inspect ./server.js (or ./app.js or whatever your entry point is)
启用连接-打开终端并运行:
heroku ps:exec -a [YOUR_APP_NAME]
一旦出现$命令提示符,请输入:
exit
在终端机中:
heroku ps:forward 9229 -a [YOUR_APP_NAME]
创建“运行配置”:
现在假设您已连接到heroku服务器。