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