Vscode中l(wèi)aunch.json與tasks.json文件的詳細(xì)介紹
launch.json文件
launch.json
文件是 Visual Studio Code (VS Code) 中用于配置調(diào)試會(huì)話的文件。它定義了調(diào)試器如何啟動(dòng)和運(yùn)行程序。以下是 launch.json
文件的詳細(xì)配置說(shuō)明,包括常見(jiàn)的屬性及其用途。
基本結(jié)構(gòu)
launch.json
文件通常位于 .vscode
目錄下,具有以下基本結(jié)構(gòu):
{ "version": "0.2.0", "configurations": [ { // 配置塊 } ] }
主要屬性
每個(gè)配置塊代表一個(gè)調(diào)試配置,包含多個(gè)屬性。以下是一些常見(jiàn)屬性的說(shuō)明:
- type: 調(diào)試器類型,如
python
,cppdbg
,node
,java
, 等。 - request: 調(diào)試請(qǐng)求類型,通常為
launch
(啟動(dòng))或attach
(附加)。 - name: 配置名稱,用戶可以在調(diào)試配置列表中看到。
- program: 要調(diào)試的程序路徑或文件。
- args: 傳遞給程序的命令行參數(shù),數(shù)組形式。
- cwd: 當(dāng)前工作目錄。
- env: 環(huán)境變量設(shè)置。
- sourceMaps: 是否啟用源映射(通常用于 JavaScript 調(diào)試)。
- preLaunchTask: 調(diào)試前要執(zhí)行的任務(wù)(通常用于編譯等)。
- postDebugTask: 調(diào)試結(jié)束后要執(zhí)行的任務(wù)。
- stopOnEntry: 是否在程序入口處停止。
- console: 控制臺(tái)類型,如
integratedTerminal
,externalTerminal
, 或internalConsole
。 - justMyCode: 是否只調(diào)試用戶代碼(用于 Python)。
- pythonPath: Python 可執(zhí)行文件的路徑(用于 Python)。
示例配置
以下是一些常見(jiàn)語(yǔ)言的 launch.json
配置示例:
Python
{ "version": "0.2.0", "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal" } ] }
C++
{ "version": "0.2.0", "configurations": [ { "name": "C++: g++ build and debug active file", "type": "cppdbg", "request": "launch", "program": "${fileDirname}/${fileBasenameNoExtension}.out", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "g++ build active file", "miDebuggerPath": "/usr/bin/gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "miDebuggerArgs": "", "stopAtEntry": false, "logging": { "moduleLoad": false, "programOutput": false, "trace": false, "traceResponse": false }, "windows": { "MIMode": "gdb", "miDebuggerPath": "gdb.exe" }, "osx": { "MIMode": "lldb" }, "pipeTransport": { "pipeProgram": "", "pipeArgs": [], "debuggerPath": "/usr/bin/gdb", "pipeCwd": "" }, "sourceFileMap": { "/mnt/c": "c:\\", "/mnt/d": "d:\\" } } ] }
Node.js
{ "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "Launch Program", "skipFiles": ["<node_internals>/**"], "program": "${workspaceFolder}/app.js" } ] }
常見(jiàn)配置項(xiàng)
1. Python
- program: 要調(diào)試的 Python 文件。
- pythonPath: Python 解釋器路徑。
- args: 傳遞給 Python 腳本的命令行參數(shù)。
- env: 環(huán)境變量。
- console: 控制臺(tái)類型。
2. C++
- program: 可執(zhí)行文件路徑。
- args: 命令行參數(shù)。
- stopAtEntry: 是否在程序入口處暫停。
- cwd: 當(dāng)前工作目錄。
- environment: 環(huán)境變量。
- externalConsole: 是否使用外部控制臺(tái)。
- MIMode: 調(diào)試器模式(如
gdb
,lldb
)。 - miDebuggerPath: 調(diào)試器路徑。
3. Node.js
- program: 要調(diào)試的 Node.js 文件。
- args: 命令行參數(shù)。
- runtimeExecutable: Node.js 可執(zhí)行文件路徑。
- runtimeArgs: 傳遞給 Node.js 的參數(shù)。
- env: 環(huán)境變量。
- sourceMaps: 是否啟用源映射。
- outFiles: 編譯輸出文件路徑。
使用示例
假設(shè)我們有一個(gè) Python 項(xiàng)目,并且我們希望配置一個(gè)調(diào)試會(huì)話,可以這樣寫(xiě):
{ "version": "0.2.0", "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal", "justMyCode": true } ] }
這個(gè)配置會(huì)使用當(dāng)前打開(kāi)的 Python 文件作為程序入口,運(yùn)行調(diào)試,并在 VS Code 的集成終端中顯示輸出。
通過(guò)理解和正確配置 launch.json
文件,可以極大地提高調(diào)試效率和開(kāi)發(fā)體驗(yàn)。不同語(yǔ)言和不同項(xiàng)目可能需要不同的配置,用戶可以根據(jù)具體需求進(jìn)行調(diào)整。
tasks.json
tasks.json
文件是 Visual Studio Code (VS Code) 中用于配置任務(wù)(Tasks)的文件。這些任務(wù)可以是編譯代碼、運(yùn)行測(cè)試、構(gòu)建項(xiàng)目等自動(dòng)化任務(wù)。以下是 tasks.json
文件的詳細(xì)配置說(shuō)明,包括常見(jiàn)的屬性及其用途。
基本結(jié)構(gòu)
tasks.json
文件通常位于 .vscode
目錄下,具有以下基本結(jié)構(gòu):
{ "version": "2.0.0", "tasks": [ { // 任務(wù)配置塊 } ] }
主要屬性
每個(gè)任務(wù)配置塊代表一個(gè)任務(wù),包含多個(gè)屬性。以下是一些常見(jiàn)屬性的說(shuō)明:
- label: 任務(wù)的名稱或標(biāo)簽,用于在任務(wù)列表中標(biāo)識(shí)任務(wù)。
- type: 任務(wù)類型,例如
shell
或process
。shell
表示任務(wù)將在 shell 中運(yùn)行,process
表示任務(wù)將作為獨(dú)立的進(jìn)程運(yùn)行。 - command: 要執(zhí)行的命令,可以是編譯器、構(gòu)建工具、腳本等。
- args: 傳遞給命令的參數(shù),數(shù)組形式。
- group: 任務(wù)分組,可以設(shè)置為
build
或test
,用于標(biāo)識(shí)構(gòu)建任務(wù)或測(cè)試任務(wù)。 - presentation: 控制任務(wù)輸出的呈現(xiàn)方式,例如是否顯示在終端中,是否清除之前的輸出等。
- problemMatcher: 配置錯(cuò)誤和警告的匹配器,用于從任務(wù)輸出中解析錯(cuò)誤和警告。
- options: 任務(wù)執(zhí)行的選項(xiàng),例如環(huán)境變量、當(dāng)前工作目錄等。
示例配置
以下是一些常見(jiàn)的 tasks.json
配置示例:
C++ 編譯任務(wù)
{ "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "g++", "args": [ "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}.out" ], "group": { "kind": "build", "isDefault": true }, "problemMatcher": ["$gcc"], "detail": "Generated task for building a C++ file using g++" } ] }
Python 運(yùn)行任務(wù)
{ "version": "2.0.0", "tasks": [ { "label": "Run Python file", "type": "shell", "command": "python", "args": [ "${file}" ], "group": { "kind": "build", "isDefault": true }, "presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "shared" }, "problemMatcher": [] } ] }
Node.js 運(yùn)行任務(wù)
{ "version": "2.0.0", "tasks": [ { "label": "Run Node.js file", "type": "shell", "command": "node", "args": [ "${file}" ], "group": { "kind": "build", "isDefault": true }, "presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "shared" }, "problemMatcher": [] } ] }
常見(jiàn)配置項(xiàng)
- label
任務(wù)的標(biāo)簽名稱,用于在 VS Code 任務(wù)列表中標(biāo)識(shí)任務(wù)。
"label": "build"
- type
任務(wù)類型,可以是 shell
或 process
。shell
表示任務(wù)將在 shell 中運(yùn)行,process
表示任務(wù)將作為獨(dú)立的進(jìn)程運(yùn)行。
"type": "shell"
- command
要執(zhí)行的命令,例如編譯器、腳本或構(gòu)建工具。
"command": "g++"
- args
傳遞給命令的參數(shù),數(shù)組形式。
"args": [ "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}.out" ]
- group
任務(wù)分組,用于標(biāo)識(shí)任務(wù)的類別,可以是 build
或 test
。
"group": { "kind": "build", "isDefault": true }
- presentation
控制任務(wù)輸出的呈現(xiàn)方式。
"presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "shared" }
- problemMatcher
用于解析任務(wù)輸出中的錯(cuò)誤和警告。VS Code 內(nèi)置了多種匹配器,例如 $gcc
, $eslint
等。
"problemMatcher": ["$gcc"]
- options
任務(wù)執(zhí)行的選項(xiàng),例如環(huán)境變量、當(dāng)前工作目錄等。
"options": { "cwd": "${workspaceFolder}" }
使用示例
假設(shè)我們有一個(gè) C++ 項(xiàng)目,并且我們希望配置一個(gè)編譯任務(wù),可以這樣寫(xiě):
{ "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "g++", "args": [ "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}.out" ], "group": { "kind": "build", "isDefault": true }, "problemMatcher": ["$gcc"], "detail": "Generated task for building a C++ file using g++" } ] }
這個(gè)配置會(huì)使用 g++
編譯當(dāng)前打開(kāi)的 C++ 文件,并將輸出文件放在相同目錄下,文件名與源文件相同但擴(kuò)展名為 .out
。
通過(guò)理解和正確配置 tasks.json
文件,可以極大地提高構(gòu)建和運(yùn)行任務(wù)的自動(dòng)化和效率。不同語(yǔ)言和不同項(xiàng)目可能需要不同的配置,用戶可以根據(jù)具體需求進(jìn)行調(diào)整。
tasks.json與launch.json文件的區(qū)別
tasks.json
和 launch.json
是 Visual Studio Code (VS Code) 中用于配置不同類型任務(wù)的文件,它們各自有不同的用途和配置方式。
tasks.json
tasks.json
用于配置和管理各種任務(wù),例如編譯代碼、運(yùn)行腳本、構(gòu)建項(xiàng)目等。它定義了一些可以自動(dòng)執(zhí)行的任務(wù),主要用于自動(dòng)化構(gòu)建、測(cè)試和其他開(kāi)發(fā)流程。
主要功能和用途:
- 編譯代碼:如編譯 C++ 或 Java 代碼。
- 運(yùn)行腳本:如執(zhí)行 Python 或 Shell 腳本。
- 構(gòu)建項(xiàng)目:如使用構(gòu)建工具(Make、Gradle、Maven)構(gòu)建項(xiàng)目。
- 其他任務(wù):如清理生成文件、打包等。
主要屬性:
- label: 任務(wù)的名稱或標(biāo)簽。
- type: 任務(wù)類型,例如
shell
或process
。 - command: 要執(zhí)行的命令。
- args: 傳遞給命令的參數(shù)。
- group: 任務(wù)分組,可以設(shè)置為
build
或test
。 - presentation: 控制任務(wù)輸出的呈現(xiàn)方式。
- problemMatcher: 配置錯(cuò)誤和警告的匹配器。
- options: 任務(wù)執(zhí)行的選項(xiàng),例如環(huán)境變量、當(dāng)前工作目錄等。
示例:
{ "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "g++", "args": [ "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}.out" ], "group": { "kind": "build", "isDefault": true }, "problemMatcher": ["$gcc"] } ] }
launch.json
launch.json
用于配置調(diào)試器的啟動(dòng)和運(yùn)行參數(shù)。它定義了調(diào)試配置,主要用于在調(diào)試會(huì)話中啟動(dòng)程序、附加到正在運(yùn)行的程序等。
主要功能和用途:
- 啟動(dòng)調(diào)試會(huì)話:配置調(diào)試器如何啟動(dòng)程序。
- 附加調(diào)試:配置調(diào)試器如何附加到正在運(yùn)行的程序。
- 設(shè)置斷點(diǎn)和觀察點(diǎn):調(diào)試過(guò)程中設(shè)置斷點(diǎn)和觀察點(diǎn)。
主要屬性:
- type: 調(diào)試器類型,如
python
,cppdbg
,node
,java
等。 - request: 調(diào)試請(qǐng)求類型,通常為
launch
(啟動(dòng))或attach
(附加)。 - name: 配置名稱,用戶可以在調(diào)試配置列表中看到。
- program: 要調(diào)試的程序路徑或文件。
- args: 傳遞給程序的命令行參數(shù)。
- cwd: 當(dāng)前工作目錄。
- env: 環(huán)境變量設(shè)置。
- sourceMaps: 是否啟用源映射(通常用于 JavaScript 調(diào)試)。
- preLaunchTask: 調(diào)試前要執(zhí)行的任務(wù)(通常用于編譯等)。
- postDebugTask: 調(diào)試結(jié)束后要執(zhí)行的任務(wù)。
- stopOnEntry: 是否在程序入口處停止。
- console: 控制臺(tái)類型,如
integratedTerminal
,externalTerminal
或internalConsole
。 - justMyCode: 是否只調(diào)試用戶代碼(用于 Python)。
示例:
{ "version": "0.2.0", "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal" } ] }
主要區(qū)別
用途:
tasks.json
:用于配置和管理自動(dòng)化任務(wù)(如編譯、構(gòu)建、運(yùn)行腳本等)。launch.json
:用于配置調(diào)試器,定義調(diào)試會(huì)話的啟動(dòng)和運(yùn)行參數(shù)。
配置內(nèi)容:
tasks.json
:定義要執(zhí)行的任務(wù)及其參數(shù)和選項(xiàng)。launch.json
:定義調(diào)試會(huì)話的參數(shù)和選項(xiàng),包括要調(diào)試的程序、調(diào)試器類型、啟動(dòng)或附加模式等。
工作流:
tasks.json
:適用于日常開(kāi)發(fā)中的重復(fù)任務(wù),自動(dòng)化構(gòu)建和測(cè)試流程。launch.json
:適用于調(diào)試代碼,啟動(dòng)調(diào)試會(huì)話或附加到正在運(yùn)行的程序。
結(jié)合使用
在許多情況下,tasks.json
和 launch.json
可以結(jié)合使用。例如,可以在 launch.json
中定義一個(gè)調(diào)試配置,并在調(diào)試前執(zhí)行一個(gè)由 tasks.json
配置的編譯任務(wù):
// launch.json { "version": "0.2.0", "configurations": [ { "name": "C++ Debug", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/a.out", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "build" } ] }
// tasks.json { "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "g++", "args": [ "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}.out" ], "group": { "kind": "build", "isDefault": true }, "problemMatcher": ["$gcc"] } ] }
這樣,當(dāng)你啟動(dòng)調(diào)試會(huì)話時(shí),VS Code 會(huì)先執(zhí)行 tasks.json
中定義的編譯任務(wù),然后再啟動(dòng)調(diào)試。
總結(jié)
到此這篇關(guān)于Vscode中l(wèi)aunch.json與tasks.json文件的文章就介紹到這了,更多相關(guān)Vscode launch.json與tasks.json文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
WebStorm最近免安裝參數(shù)免激活碼 真永久激活方法
相信很朋友因?yàn)閃ebStorm最新激活碼或激活補(bǔ)丁的安裝參數(shù)每月都會(huì)失效而煩惱,下面小編給大家分享一個(gè)一勞永逸的永久激活的方法2020-12-12Jebrains付費(fèi)插件Activation code[持續(xù)更新]
這篇文章主要介紹了Jebrains付費(fèi)插件Activation code[持續(xù)更新],使用本Activation code需要jetbrains-agent支持!感興趣的朋友跟隨小編一起看看吧2020-09-09將來(lái)會(huì)是Python、Java、Golang三足鼎立的局面嗎
python的優(yōu)勢(shì)在于數(shù)據(jù)處理和人工智能等方向,所以go只可能吞噬Java的份額,很難撼動(dòng)Python的奶酪,所以將來(lái)會(huì)是Python、Java、Golang三足鼎立的局面嗎2019-04-04ArcGIS Pro 按照字段進(jìn)行融合或拆分的操作步驟
ArcGIS Pro 是 Esri 提供的功能全面的專業(yè)桌面 GIS 應(yīng)用程序,這篇文章主要介紹了ArcGIS Pro 按照字段進(jìn)行融合或拆分,需要的朋友可以參考下2024-02-02分享18個(gè)最佳代碼編輯器/IDE開(kāi)發(fā)工具
這篇文章主要為開(kāi)發(fā)人員收錄了18個(gè)最好的代碼編輯器/IDE工具,希望你會(huì)喜歡2014-05-05MobaXterm連接服務(wù)器如何在關(guān)閉會(huì)話的情況下依然執(zhí)行程序(最新推薦)
這篇文章主要介紹了MobaXterm連接服務(wù)器如何在關(guān)閉會(huì)話的情況下依然執(zhí)行程序,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06APAP?ALV進(jìn)階寫(xiě)法及優(yōu)化詳解
這篇文章主要為大家介紹了APAP?ALV進(jìn)階寫(xiě)法及優(yōu)化詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09教你免費(fèi)做一個(gè)屬于自己穩(wěn)定有效的圖床-PicGo
由于現(xiàn)在很多寫(xiě)作平臺(tái)都支持了Markdown語(yǔ)法,導(dǎo)致圖床用的人越來(lái)越多。這篇文章主要介紹了如何免費(fèi)做一個(gè)屬于自己穩(wěn)定有效的圖床-PicGo,需要的朋友可以參考下2020-01-01各種語(yǔ)言、服務(wù)器301跳轉(zhuǎn)代碼全集
這篇文章主要介紹了各種語(yǔ)言、服務(wù)器301跳轉(zhuǎn)代碼全集,本文講解了IIS下301設(shè)置、ASP下的301轉(zhuǎn)向代碼、ASP.Net下的301轉(zhuǎn)向代碼、PHP下的301轉(zhuǎn)向代碼 、CGI Perl下的301轉(zhuǎn)向代碼、JSP下的301轉(zhuǎn)向代碼等內(nèi)容,需要的朋友可以參考下2015-04-04