相當(dāng)于直接使用 node 命令,用npm run script 腳本
來啟動 Node.js 程序是更為常見的場景霍骄,比如當(dāng)目標(biāo)是運(yùn)行一個應(yīng)用群嗤。
假設(shè)項(xiàng)目的 package.json 有一個用來調(diào)試的debug
腳本:
"scripts": {
"debug": "node app.js" // app.js 是啟動項(xiàng)目的文件
},
我們要怎么啟動項(xiàng)目的跟蹤調(diào)試呢?
文檔指路 ?? 【Node.js 調(diào)試入門】氏淑、【VSCode 中的 Node.js 調(diào)試】勃蜘、【Launch 對 npm 及其他工具的配置支持】
VS Code 支持兩種核心調(diào)試模式 Launch 和 Attach,Launch 方式是直接以 debug 模式啟動應(yīng)用假残,并為我們自動添加一個調(diào)試器缭贡;而 Attach 方式則是將 VSCode 調(diào)試器連接到已經(jīng)運(yùn)行中的應(yīng)用程序或進(jìn)程。我們這里用的是 Launch 方式辉懒。
1. 創(chuàng)建 launch.json 配置文件
在終端運(yùn)行:
cd 當(dāng)前項(xiàng)目根目錄
mkdir .vscode
cd .vscode
touch launch.json
或點(diǎn)擊VSCode 的小甲蟲圖標(biāo):
上面藍(lán)色位置圈錯了阳惹,應(yīng)該是第一個 Node.js。
2. 修改 launch.json 配置
VSCode 十分智能眶俩,預(yù)設(shè)了很多針對不同需求的啟動配置:
讓我們來做進(jìn)一步的修改:
{
// 使用 IntelliSense 了解相關(guān)屬性莹汤。
// 懸停以查看現(xiàn)有屬性的描述。
// 欲了解更多信息颠印,請?jiān)L問: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node", // 調(diào)試器類型纲岭,我們是 Node.js 環(huán)境
"request": "launch", // 請求方式,有 launch(啟動) 和 attach(附加) 兩種
"name": "Launch via NPM", // 啟動配置名稱
"runtimeExecutable": "npm", // 任務(wù)運(yùn)行工具嗽仪,'npm', 'mocha', 'gulp' 等
"runtimeArgs": ["run-script", "debug"], // 傳遞給執(zhí)行工具的可選參數(shù)
"port": 9339, // 啟動程序的端口
"skipFiles": ["<node_internals>/**/*.js"], // 跳過所有 Node.js 的內(nèi)置模塊
"console": "externalTerminal" // 指定啟動控制器為外部終端
}
]
}
之前那個啟動配置項(xiàng)可以刪除荒勇,留下這個需要的即可。
我們將 console 屬性 設(shè)置為外部終端闻坚,我們啟動調(diào)試時 VScode 就會自動打開下圖中對應(yīng)的終端(根據(jù)操作系統(tǒng))沽翔。可以根據(jù)個人使用習(xí)慣,自定義用什么終端 (比如我在 VSCode 設(shè)置的 Terminal ? External: Osx Exec仅偎,從默認(rèn)的改為了 iTerm2)跨蟹。
3. 在需要的位置設(shè)置斷點(diǎn),啟動服務(wù)
別忘了先把我們的腳本加上端口
"scripts": {
"debug": "node --inspect-brk=9339 app.js" // 假設(shè) app.js 是啟動項(xiàng)目的文件
},