vscode調試node.js項目


vscode調試node.js項目一般有三種情況:

1.vscode啟動調試服務端,直接運行要調試的入口文件,開發時比較適合,目前好像只能運行js文件,ts文件可能有點難度

2.遠程調試,需要遠程服務端以調試模式先運行起來,然后本地根據host、post連接遠程調試服務器

3.本地根據進程調試,需要本地服務端先運行起來,然后本地根據進程id附加到指定進行調試,不需要服務端以調試模式運行

vscode中內置了這幾種方式的配置:

1.直接本地以調試模式運行服務端,同時運行調試客戶端連接

直接以node命令運行:

調試運行框->添加配置->Node.js:啟動程序,生成配置如下:

{
        "type": "node",
        "request": "launch",
        "name": "Launch Program",
        "program": "${workspaceFolder}\\index.js"
    }

其中選項:
type:代表調試環境,node、python、c++等

request:代表行為,launch為直接運行入口文件,attach為附加到遠程調試客戶端,或者附加到本地進程

runtimeExecutable:運行時,即運行的命令,node、nodemon等,type為node時默認為node可以省略

runtimeArgs:運行參數,傳遞給運行時

program:代表運行的腳本

運行調試的輸出:

node --inspect-brk=41886 index.js
Debugger listening on ws://127.0.0.1:41886/44ec2627-9ddf-44a8-8eb5-19389d2b57d5
說明程序以調試模式啟動,且隨機指定了調試端口,而且調試信息以websocket協議傳輸,vscode的調試客戶端就是連接到這個調試端口的

直接以nodemon命令運行:

調試運行框->添加配置->Node.js:Nodemon安裝程序,生成配置如下:

{
        "type": "node",
        "request": "launch",
        "name": "nodemon",
        "runtimeExecutable": "nodemon",
        "program": "${workspaceFolder}/index.js",
        "restart": true,
        "console": "integratedTerminal",
        "internalConsoleOptions": "neverOpen"
    }

看到運行時為nodemon,restart為true,應該為nodemon專屬參數
運行調試的輸出:

[nodemon] starting node --inspect=48487 --debug-brk index.js
Debugger listening on ws://127.0.0.1:48487/60beffd8-d508-4fd4-97e2-1126ce113733
For help see https://nodejs.org/en/docs/inspector
Debugger attached.
nodemon內部執行了相同的node命令

2.附加到遠程服務端調試

調試運行框->添加配置->Node.js:附加到遠程計划,生成配置如下:

{
        "type": "node",
        "request": "attach",
        "name": "Attach to Remote",
        "address": "localhost",
        "port": 27965,
        "localRoot": "${workspaceFolder}",
        "remoteRoot": "Absolute path to the remote directory containing the program"
    }

最后兩個選項暫時不管,沒用到,主要:
address:遠程調試服務端域名

port:遠程調試端口

啟動調試服務端:

node --inspect-brk=27965 index.js
Debugger listening on ws://127.0.0.1:27965/be5ec018-fa58-4948-9f8d-c648c8f2dc83
For help see https://nodejs.org/en/docs/inspector
啟動調試:
Debugger attached.
說明調試器附加上了
這里還有一些說明:

nodemon啟動調試:

nodemon --inspect-brk=27965
輸出:
[nodemon] starting node --inspect-brk=27965 index.js
Debugger listening on ws://127.0.0.1:27965/14488469-286f-411e-a73a-d49ea5d8effa
For help see https://nodejs.org/en/docs/inspector
說明nodemon命令的調試選項會傳遞給node命令,而默認參數為index.js

3.附加到指定進程調試
調試運行框->添加配置->Node.js:附加到進程,生成配置如下:
{
“type”: “node”,
“request”: “attach”,
“name”: “Attach by Process ID”,
“processId”: “21920”
}
只有一個進程id需要稍微理解一下
啟動項目:

node index.js
運行調試:
Debugger listening on ws://127.0.0.1:9229/6cf17f3e-8844-43eb-b3c4-aab3dd59af8a
For help see https://nodejs.org/en/docs/inspector
Debugger attached.

這里還有最后一個問題:ts項目目前好像不能直接使用ts-node運行進行調試,必須經過index.js
require(‘ts-node/register’);
require(’./src/main’);
即入口文件只能是js,或者說我還不會直接在調試時運行ts


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM