VSCode launch.json配置詳細教程
以下為vscode 的node.js debugger 的 launch.json 配置詳情:
啟動配置必須設定請求類型,屬性request , 分為launch(啟動) 和 attach(附加)兩種 ,看下面例子:
{ "version": "0.2.0", "configurations": [ { ... "request": "launch", //請求類型為啟動 }, { ... "request": "attach", //請求類型為附加 } ] }
下面是launch 和 attach 類型共有的屬性:
protocol
設置調(diào)試協(xié)議auto
嘗試自動檢測目標運行時使用的協(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
地址,用于遠程調(diào)試localRoot
遠程調(diào)試時映射的本地地址remoteRoot
遠程調(diào)試時的遠程目錄地址sourceMaps
默認為trueoutFiles
當map文件不在js文件同目錄時用于指定 sourceMaps的位置restart
自動重啟調(diào)試timeout
配置自動附加的超時時間stopOnEntry
自動斷點到第一行代碼處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)試的目錄 ,當vscode啟動目錄不是項目根目錄,并且調(diào)試npm script時非常有用runtimeExecutable
設置運行時可執(zhí)行文件路徑,默認是node- 可以是其他的執(zhí)行程序,如npm、nodemon
runtimeArgs
傳遞給運行時可執(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í)行文件
runtimeVersion
設置運行時可執(zhí)行程序的版本,如果使用nvm
,可以切換node.js版本env
添加額外的環(huán)境變量envFile
文件加載環(huán)境變量console
配置終端可以是外部終端或者內(nèi)部集成終端,默認值internalConsole
outputCapture
-如果設置為std,則進程stdout / stderr的輸出將顯示在調(diào)試控制臺中,而不是偵聽調(diào)試端口上的輸出。這對于直接寫入stdout / stderr
流而不是使用console.*API的程序或日志庫很有用。autoAttachChildProcesses
跟蹤調(diào)試對象的所有子過程,并自動附加到在調(diào)試模式下啟動的子過程
以下是特定于類型 attach
(附加)的配置屬性:
processId
指定nodejs進程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屬性:
- "
runtimeArgs" : ["--experimental-modules"]
-使用Node v8.5.0 +中的實驗性ECMAScript模塊支持 "runtimeArgs" : ["-r", "esm"]
-使用esm ES模塊加載器(請注意,["-r esm"]如果沒有逗號,則無法使用)
總結
到此這篇關于VSCode launch.json配置詳細教程的文章就介紹到這了,更多相關VSCode launch.json配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!