簡體   English   中英

如何調試部署在 Heroku 上的 node.js 應用程序?

[英]How could I debug a node.js App deploy on Heroku?

嗨,有沒有辦法調試部署在 heroku 服務器上的 node.js 應用程序。

我無法在本地調試它,因為該應用程序正在接收來自第 3 方的一些發布請求,而且我沒有公共 IP。

謝謝。

我不知道為什么 Heroku 沒有更好地突出顯示這一點,但是使用 Heroku 進行遠程調試所需的文檔在此Heroku Exec (SSH tunneling) 頁面上 目前它的 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"
},

您現在應該能夠在編輯器中啟動調試會話,並在幾秒鍾內將其連接到正在運行的應用程序。 所有正常的調試功能,包括斷點、調用堆棧、變量檢查等都應該可以工作。

2019 Webstorm 2019.2 答案
沒有太大變化,但仍然:

  1. 創建一個文件名Procfile (無擴展名)--> 編輯它:

     web: node --inspect ./server.js (or ./app.js or whatever your entry point is)

    使用新的 Procfile 部署代碼!

  2. 啟用連接 - 打開終端並運行:

     heroku ps:exec -a [YOUR_APP_NAME]

一旦你得到一個 $ 命令提示符寫:

    exit

在終端:

    heroku ps:forward 9229 -a [YOUR_APP_NAME]
  1. 創建一個“運行配置”:
  • “編輯配置”--> 單擊 +-->“附加到節點/Chrome”--> 默認值很好,只需命名即可。 在此處輸入圖片說明
  • 選擇“Chrome or Node > 6.3 started with --inspect”
  • 好的
  • 點擊調試

現在假設您已連接到您的 heroku 服務器。

最后:刪除 Procfile 並在沒有它的情況下再次部署。

只需登錄heroku,轉到您的應用程序並單擊“更多”按鈕即可快速簡便。 在此處輸入圖片說明

或者在項目文件夾的控制台中輸入heroku logs tail

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM