溫馨提示×

如何在Ubuntu上調試Node.js應用

小樊
35
2025-10-14 08:15:28
欄目: 編程語言

如何在Ubuntu上調試Node.js應用

在Ubuntu上調試Node.js應用有多種高效方法,以下是最常用的三種方案,覆蓋從基礎到進階的場景:

一、使用Node.js內置調試器(命令行+Chrome DevTools)

這是最基礎的調試方式,無需額外工具,適合快速定位問題。

  1. 啟動調試模式
    在終端中運行以下命令,其中your_script.js是你的入口文件。若需要在代碼第一行暫停(方便檢查初始狀態),用--inspect-brk替代--inspect

    node --inspect your_script.js
    

    成功啟動后,終端會輸出調試服務器地址(如Debugger listening on ws://127.0.0.1:9229/xxxxxx)。

  2. 連接Chrome DevTools
    打開Chrome瀏覽器,訪問chrome://inspect,在“Remote Target”列表中找到你的Node.js應用(顯示為“Node.js”或入口文件名),點擊“inspect”鏈接,會打開專用的調試窗口。

  3. 調試操作

    • 設置斷點:在DevTools的“Sources”面板中,找到你的代碼文件(如your_script.js),點擊行號左側添加斷點(紅色圓點)。
    • 控制執行:使用頂部工具欄的按鈕(或快捷鍵)控制執行流程:
      • Resume(F8):恢復執行,直到下一個斷點;
      • Step Over(F10):執行當前行,不進入函數內部;
      • Step Into(F11):進入當前行的函數內部;
      • Step Out(Shift+F11):跳出當前函數。
    • 查看變量:在“Scope”面板中查看當前作用域的變量值,或在“Console”中直接輸入變量名查看實時值。

二、使用Visual Studio Code(推薦)

VSCode是Node.js開發的最佳IDE之一,內置強大的調試功能,無需手動配置瀏覽器。

  1. 準備項目
    打開VSCode,通過File > Open Folder導入你的Node.js項目文件夾。

  2. 創建launch.json文件
    點擊左側邊欄的“Run and Debug”圖標(或按Ctrl+Shift+D),點擊頂部“create a launch.json file”,選擇“Node.js”環境。VSCode會自動生成.vscode/launch.json文件,修改program字段指向你的入口文件(如"${workspaceFolder}/app.js")。

  3. 啟動調試
    在代碼中添加debugger;語句(或直接點擊行號左側設置斷點),點擊“Run and Debug”面板中的綠色“Run”按鈕(或按F5),VSCode會自動啟動Node.js進程并附加調試器。此時,你可以像在Chrome DevTools中一樣進行斷點調試、查看變量、調用堆棧等操作。

三、使用Nodemon優化調試流程(開發必備)

Nodemon會在代碼修改后自動重啟應用,結合調試功能可大幅提升開發效率。

  1. 安裝Nodemon
    在項目目錄下運行以下命令,將其添加為開發依賴:

    npm install --save-dev nodemon
    
  2. 配置調試腳本
    package.jsonscripts部分添加debug腳本,使用nodemon啟動調試模式(以--inspect為例):

    "scripts": {
      "debug": "nodemon --inspect app.js"
    }
    

    app.js替換為你的入口文件。

  3. 啟動調試
    在終端中運行npm run debug,Nodemon會啟動Node.js應用并開啟調試服務器。此時,你可以用Chrome DevTools或VSCode連接到localhost:9229進行調試。每次修改代碼并保存后,Nodemon會自動重啟應用,調試器會自動重新附加,無需手動重啟。

注意事項

  • 端口沖突:默認調試端口是9229,若被占用,可通過--inspect=端口號(如--inspect=8888)指定其他端口。
  • 安全提示:避免在生產環境開啟調試模式,防止敏感信息泄露。
  • 斷點生效:確保代碼已保存,且調試器已附加到進程(如使用--inspect-brk時,代碼會在第一行暫停,等待調試器連接)。

以上方法覆蓋了Ubuntu下調試Node.js應用的主要場景,可根據團隊習慣或項目需求選擇合適的方式。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女