VSCode Node.js 調(diào)試配置 (npm 腳本啟動)

相當(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):

創(chuàng)建launch.json文件
選擇Node.js環(huán)境

上面藍(lán)色位置圈錯了阳惹,應(yīng)該是第一個 Node.js。

生成了一個默認(rèn)的配置

2. 修改 launch.json 配置

VSCode 十分智能眶俩,預(yù)設(shè)了很多針對不同需求的啟動配置:

當(dāng)光標(biāo)位于配置項(xiàng)數(shù)組內(nèi)點(diǎn)擊'添加配置'按鈕
找到并選擇通過 NPM 啟動
默認(rèn)生成的啟動配置項(xiàng)

讓我們來做進(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ù)

在調(diào)試時想要命中的位置點(diǎn)擊

別忘了先把我們的腳本加上端口

  "scripts": {
    "debug": "node --inspect-brk=9339 app.js" // 假設(shè) app.js 是啟動項(xiàng)目的文件
  },
藍(lán)后點(diǎn)這里橘沥,這個名字對應(yīng)我們啟動配置的 name
開始愉快地調(diào)試吧~ (不是
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末窗轩,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子座咆,更是在濱河造成了極大的恐慌痢艺,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件介陶,死亡現(xiàn)場離奇詭異堤舒,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)哺呜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進(jìn)店門舌缤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人某残,你說我怎么就攤上這事国撵。” “怎么了玻墅?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵介牙,是天一觀的道長。 經(jīng)常有香客問我椭豫,道長耻瑟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任赏酥,我火速辦了婚禮喳整,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘裸扶。我一直安慰自己框都,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布呵晨。 她就那樣靜靜地躺著魏保,像睡著了一般。 火紅的嫁衣襯著肌膚如雪摸屠。 梳的紋絲不亂的頭發(fā)上谓罗,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天,我揣著相機(jī)與錄音季二,去河邊找鬼檩咱。 笑死揭措,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的刻蚯。 我是一名探鬼主播绊含,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼炊汹!你這毒婦竟也來了躬充?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤讨便,失蹤者是張志新(化名)和其女友劉穎充甚,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體霸褒,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡津坑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了傲霸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡眉反,死狀恐怖昙啄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情寸五,我是刑警寧澤梳凛,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站梳杏,受9級特大地震影響韧拒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜十性,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一叛溢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧劲适,春花似錦楷掉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至愕贡,卻和暖如春草雕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工结笨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人几睛。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓败晴,卻偏偏與公主長得像浓冒,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子尖坤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容