[FE] 使用vscode調(diào)試npm scripts

1. 調(diào)試node.js

我們先來(lái)看看vscode如何調(diào)試node.js舔亭。

1.1 新建項(xiàng)目

$ mkdir vscode-debug
$ cd vscode-debug
$ npm init -f

1.2 新建index.js

console.log('hello');

1.3 打開vscode

用vscode打開vscode-debug文件夾播聪,作為vscode資源管理的根目錄

1.4 添加vscode配置

打開工具欄的“調(diào)試”菜單馏谨,然后點(diǎn)擊“添加配置”伪货。


vscode會(huì)讓我們選擇環(huán)境威鹿,這里我們選擇“Node.js”。


vscode會(huì)自動(dòng)在工程目錄下創(chuàng)建一個(gè) .vscode/launch.json 文件瞬逊。

我們看到 .vscode/launch.jsonconfigurations.program屬性為檐迟,

{
    ...
    "configurations": [
        {
            ...
            "program": "${workspaceFolder}/index.js"
        }
    ]
}

其中${workspaceFolder}/index.js表示了調(diào)試的入口,
workspaceFolder是vscode資源管理器的根目錄码耐,
因此追迟,上文中我們強(qiáng)調(diào)了項(xiàng)目目錄應(yīng)當(dāng)為資源管理器的根目錄

1.5 啟動(dòng)調(diào)試

添加完調(diào)試配置之后骚腥,直接按F5敦间,就可以啟動(dòng)調(diào)試了。
在此之前,記得去 index.js 文件中打個(gè)斷點(diǎn)廓块。

啟動(dòng)調(diào)試之后厢绝,程序就會(huì)停在斷點(diǎn)處了,


2. 調(diào)試npm scripts

在實(shí)際項(xiàng)目中带猴,好多命令放到了npm scritps中昔汉,
下面我們介紹調(diào)試npm scripts的辦法。

2.1 添加npm scripts

{
  ...
  "scripts": {
    ...
    "debug": "node --inspect-brk=5858 index.js"
  },
  ...
}

其中拴清,debug是npm scripts的名字靶病,可以任取,
后面--inspect-brk=5858是必須的口予,其中5858是任意指定的調(diào)試端口號(hào)娄周。

2.2 修改vscode調(diào)試配置

打開 .vscode/launch.json
增加以下3個(gè)配置項(xiàng)沪停,runtimeExecutable煤辨,runtimeArgsport木张。

program配置項(xiàng)就可以刪掉了众辨,

"program": "${workspaceFolder}/index.js"
{
    ...
    "configurations": [
        {
            ...
            "runtimeExecutable": "npm",
            "runtimeArgs": [
                "run-script",
                "debug"
            ],
            "port": 5858
        }
    ]
}

其中,runtimeExecutable表示要使用的運(yùn)行時(shí)舷礼,默認(rèn)為node鹃彻,這里我們配置成了npm
runtimeArgs的第二個(gè)參數(shù)且轨,就是npm scripts的命令名浮声,第一個(gè)參數(shù)run-script不要修改虚婿。
port指的是npm scripts中我們配置的--inspect-brk=5858調(diào)試端口號(hào)5858旋奢。

2.3 啟動(dòng)調(diào)試

然后按F5,就可以啟動(dòng)調(diào)試了然痊,
程序停到了 index.js 我們打的斷點(diǎn)處至朗。

3. 調(diào)試非node命令

3.1 node_modules/.bin

npm run會(huì)自動(dòng)添加node_module/.bin 到當(dāng)前命令所用的PATH變量中,
可參考npm-run-script剧浸。

例如锹引,如果我們配置了名為build的npm scripts,

{
  ...
  "scripts": {
    "build": "webpack"
  },
  ...
}

npm run build實(shí)際調(diào)用的是 node_modules/.bin/webpack唆香。

3.2 不能直接加 --inspect-brk

在這種情況下嫌变,直接加--inspect-brk=5858是不靈的。

{
  ...
  "scripts": {
    "debug": "webpack --inspect-brk=5858"
  },
  ...
}

以上配置躬它,會(huì)自動(dòng)執(zhí)行npm run debug腾啥,但不會(huì)進(jìn)入斷點(diǎn)。

3.3 轉(zhuǎn)換成node調(diào)用

{
  ...
  "scripts": {
    "debug": "node --inspect-brk=5858 ./node_modules/.bin/webpack"
  },
  ...
}

這次就啟動(dòng)成功了,這是因?yàn)?code>--inspect-brk是node的參數(shù)倘待,
我們需要將npm script中的命令改成node調(diào)用疮跑。

3.4 stopOnEntry

我們還可以設(shè)置 .vscode/launch.jsonconfigurations.stopOnEntry屬性,
啟動(dòng)調(diào)試后會(huì)凸舵,會(huì)自動(dòng)將斷點(diǎn)停在代碼的第一行祖娘。

{
    ...
    "configurations": [
        {
            ...
            "stopOnEntry": true,
        }
    ]
}

參考

Launch configuration support for 'npm' and other tools

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市啊奄,隨后出現(xiàn)的幾起案子渐苏,更是在濱河造成了極大的恐慌,老刑警劉巖增热,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件整以,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡峻仇,警方通過查閱死者的電腦和手機(jī)公黑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)摄咆,“玉大人凡蚜,你說我怎么就攤上這事】源樱” “怎么了朝蜘?”我有些...
    開封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)涩金。 經(jīng)常有香客問我谱醇,道長(zhǎng),這世上最難降的妖魔是什么步做? 我笑而不...
    開封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任副渴,我火速辦了婚禮,結(jié)果婚禮上全度,老公的妹妹穿的比我還像新娘煮剧。我一直安慰自己,他們只是感情好将鸵,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開白布勉盅。 她就那樣靜靜地躺著,像睡著了一般顶掉。 火紅的嫁衣襯著肌膚如雪草娜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天痒筒,我揣著相機(jī)與錄音宰闰,去河邊找鬼嗜暴。 笑死,一個(gè)胖子當(dāng)著我的面吹牛议蟆,可吹牛的內(nèi)容都是我干的闷沥。 我是一名探鬼主播,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼咐容,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼舆逃!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起戳粒,我...
    開封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤路狮,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后蔚约,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奄妨,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年苹祟,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了砸抛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡树枫,死狀恐怖直焙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情砂轻,我是刑警寧澤奔誓,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站搔涝,受9級(jí)特大地震影響厨喂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜庄呈,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一蜕煌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧抒痒,春花似錦幌绍、人聲如沸颁褂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)颁独。三九已至彩届,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間誓酒,已是汗流浹背樟蠕。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工贮聂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人寨辩。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓吓懈,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親靡狞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子耻警,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359