VSCode launch.json配置詳解

vscode原文地址

以下為vscode 的node.js debugger 的 launch.json 配置詳情:

啟動配置必須設(shè)定請求類型聊记,屬性request 降盹, 分為launch(啟動) 和 attach(附加)兩種 ,看下面例子:

{
    "version": "0.2.0",
    "configurations": [
        {
          ...
            "request": "launch", //請求類型為啟動

        },
        {
        ...
            "request": "attach"首懈, //請求類型為附加

        }
    ]
}
下面是launchattach 類型共有的屬性:
  • protocol 設(shè)置調(diào)試協(xié)議
    auto 嘗試自動檢測目標(biāo)運(yùn)行時使用的協(xié)議
    inspector 新的V8調(diào)試器協(xié)議骚揍,解決遺留版本的多數(shù)問題宏榕,node versions >= 6.3 and Electron versions >= 1.7.4.
    legacy 原始的v8調(diào)試器協(xié)議治力,node versions < v8.0 and Electron versions < 1.7.4.
  • port調(diào)試使用的端口
  • address TCP/IP地址眶熬,用于遠(yuǎn)程調(diào)試
  • localRoot 遠(yuǎn)程調(diào)試時映射的本地地址
  • remoteRoot 遠(yuǎn)程調(diào)試時的遠(yuǎn)程目錄地址
  • sourceMaps 默認(rèn)為true
  • outFiles 當(dāng)map文件不在js文件同目錄時用于指定 sourceMaps的位置
  • restart 自動重啟調(diào)試
  • timeout 配置自動附加的超時時間
  • stopOnEntry 自動斷點(diǎn)到第一行代碼處
  • smartStep 自動跳過未映射到源代碼的代碼
  • skipFiles :[]String,指定跳過單步調(diào)試的代碼
 "skipFiles": [
    "${workspaceFolder}/node_modules/**/*.js",  //跳過node_modules
    "${workspaceFolder}/lib/**/*.js",//跳過lib
    "<node_internals>/**/*.js"http://跳過node核心模塊
  ]
  • trace啟用診斷輸出
以下是特定于類型 launch(啟動)的配置屬性:
  • program 指定調(diào)試入口文件地址
  • args :[]String 傳遞給程序的參數(shù),可在process.argv拿到
  • cwd 指定程序啟動調(diào)試的目錄 ,當(dāng)vscode啟動目錄不是項目根目錄妹笆,并且調(diào)試npm script時非常有用
  • runtimeExecutable 設(shè)置運(yùn)行時可執(zhí)行文件路徑,默認(rèn)是node
    可以是其他的執(zhí)行程序娜氏,如npm拳缠、nodemon
  • runtimeArgs 傳遞給運(yùn)行時可執(zhí)行文件的參數(shù),例如:
        {
            "type": "node",
            "request": "launch",
            "name": "npm launch app",
            "args":["a"],
            "runtimeExecutable": "npm",
            "runtimeArgs": [
                "run-script",
                "app",
                "b"
            ],
            "port": 6666
        }

打印參數(shù)可以發(fā)現(xiàn) args 、runtimeArgs都會傳給程序贸弥,但是runtimeArgs參數(shù)會緊跟可執(zhí)行文件

image.png

  • runtimeVersion 設(shè)置運(yùn)行時可執(zhí)行程序的版本窟坐,如果使用nvm,可以切換node.js版本
  • env 添加額外的環(huán)境變量
  • envFile 文件加載環(huán)境變量
  • console 配置終端可以是外部終端或者內(nèi)部集成終端绵疲,默認(rèn)值internalConsole
  • outputCapture -如果設(shè)置為std哲鸳,則進(jìn)程stdout / stderr的輸出將顯示在調(diào)試控制臺中,而不是偵聽調(diào)試端口上的輸出盔憨。這對于直接寫入stdout / stderr流而不是使用console.*API的程序或日志庫很有用徙菠。
  • autoAttachChildProcesses 跟蹤調(diào)試對象的所有子過程,并自動附加到在調(diào)試模式下啟動的子過程
以下是特定于類型 attach(附加)的配置屬性:
  • processId 指定nodejs進(jìn)程id,由于每次啟動都會變郁岩,傳入"${command:PickProcess}"

questions:

1. 如果使用了符號鏈接怎么調(diào)試婿奔?

傳遞參數(shù):

{
  "runtimeArgs": ["--preserve-symlinks"]
}

如果主腳本也在符號鏈接路徑里面,需要再傳遞一個參數(shù)"--preserve-symlinks-main"问慎,支持的版本是 Node 10+.

2. 如何調(diào)試ECMAScript模塊萍摊?

如果使用esm或傳遞--experimental-modules給Node.js以便使用ECMAScript模塊,則可以傳遞這些選項通過runtimeArgs屬性:

vsCode launch 模式調(diào)試web應(yīng)用

  1. 正常啟動前端項目
  2. 配置 launch.json:
  • url: 前端項目運(yùn)行的url地址
  • webRoot: 指定 Web 服務(wù)器根的工作區(qū)絕對路徑,對于Monorepo項目需要如下配置路徑笼恰。
  1. 點(diǎn)擊運(yùn)行和調(diào)試踊沸,啟動debugger。
{
  // 使用 IntelliSense 了解相關(guān)屬性挖腰。 
  // 懸停以查看現(xiàn)有屬性的描述雕沿。
  // 欲了解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "type": "chrome",
      "request": "launch",
      "name": "針對 localhost 啟動 Chrome",
      "url": "http://localhost:8848",
      "sourceMaps": true,
      "sourceMapPathOverrides": {
        "webpack:///src/*": "${webRoot}/*"
      },
      "webRoot": "${workspaceFolder}/packages/xxx/src"
    }
  ]
}


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末猴仑,一起剝皮案震驚了整個濱河市审轮,隨后出現(xiàn)的幾起案子肥哎,更是在濱河造成了極大的恐慌,老刑警劉巖疾渣,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件篡诽,死亡現(xiàn)場離奇詭異,居然都是意外死亡榴捡,警方通過查閱死者的電腦和手機(jī)杈女,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吊圾,“玉大人达椰,你說我怎么就攤上這事∠钇梗” “怎么了啰劲?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長檀何。 經(jīng)常有香客問我蝇裤,道長,這世上最難降的妖魔是什么频鉴? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任栓辜,我火速辦了婚禮,結(jié)果婚禮上垛孔,老公的妹妹穿的比我還像新娘藕甩。我一直安慰自己,他們只是感情好似炎,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布辛萍。 她就那樣靜靜地躺著,像睡著了一般羡藐。 火紅的嫁衣襯著肌膚如雪贩毕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天仆嗦,我揣著相機(jī)與錄音辉阶,去河邊找鬼。 笑死瘩扼,一個胖子當(dāng)著我的面吹牛谆甜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播集绰,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼规辱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了栽燕?” 一聲冷哼從身側(cè)響起罕袋,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤改淑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后浴讯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體朵夏,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年榆纽,在試婚紗的時候發(fā)現(xiàn)自己被綠了仰猖。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡奈籽,死狀恐怖饥侵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情唠摹,我是刑警寧澤爆捞,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布奉瘤,位于F島的核電站勾拉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏盗温。R本人自食惡果不足惜藕赞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望卖局。 院中可真熱鬧斧蜕,春花似錦、人聲如沸砚偶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽染坯。三九已至均芽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間单鹿,已是汗流浹背掀宋。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留仲锄,地道東北人劲妙。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像儒喊,于是被迫代替她去往敵國和親镣奋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評論 2 355