Vscode中l(wèi)aunch.json與tasks.json文件的詳細介紹
launch.json文件
launch.json
文件是 Visual Studio Code (VS Code) 中用于配置調(diào)試會話的文件。它定義了調(diào)試器如何啟動和運行程序。以下是 launch.json
文件的詳細配置說明,包括常見的屬性及其用途。
基本結(jié)構(gòu)
launch.json
文件通常位于 .vscode
目錄下,具有以下基本結(jié)構(gòu):
{ "version": "0.2.0", "configurations": [ { // 配置塊 } ] }
主要屬性
每個配置塊代表一個調(diào)試配置,包含多個屬性。以下是一些常見屬性的說明:
- type: 調(diào)試器類型,如
python
,cppdbg
,node
,java
, 等。 - request: 調(diào)試請求類型,通常為
launch
(啟動)或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: 控制臺類型,如
integratedTerminal
,externalTerminal
, 或internalConsole
。 - justMyCode: 是否只調(diào)試用戶代碼(用于 Python)。
- pythonPath: Python 可執(zhí)行文件的路徑(用于 Python)。
示例配置
以下是一些常見語言的 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" } ] }
常見配置項
1. Python
- program: 要調(diào)試的 Python 文件。
- pythonPath: Python 解釋器路徑。
- args: 傳遞給 Python 腳本的命令行參數(shù)。
- env: 環(huán)境變量。
- console: 控制臺類型。
2. C++
- program: 可執(zhí)行文件路徑。
- args: 命令行參數(shù)。
- stopAtEntry: 是否在程序入口處暫停。
- cwd: 當(dāng)前工作目錄。
- environment: 環(huán)境變量。
- externalConsole: 是否使用外部控制臺。
- 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è)我們有一個 Python 項目,并且我們希望配置一個調(diào)試會話,可以這樣寫:
{ "version": "0.2.0", "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal", "justMyCode": true } ] }
這個配置會使用當(dāng)前打開的 Python 文件作為程序入口,運行調(diào)試,并在 VS Code 的集成終端中顯示輸出。
通過理解和正確配置 launch.json
文件,可以極大地提高調(diào)試效率和開發(fā)體驗。不同語言和不同項目可能需要不同的配置,用戶可以根據(jù)具體需求進行調(diào)整。
tasks.json
tasks.json
文件是 Visual Studio Code (VS Code) 中用于配置任務(wù)(Tasks)的文件。這些任務(wù)可以是編譯代碼、運行測試、構(gòu)建項目等自動化任務(wù)。以下是 tasks.json
文件的詳細配置說明,包括常見的屬性及其用途。
基本結(jié)構(gòu)
tasks.json
文件通常位于 .vscode
目錄下,具有以下基本結(jié)構(gòu):
{ "version": "2.0.0", "tasks": [ { // 任務(wù)配置塊 } ] }
主要屬性
每個任務(wù)配置塊代表一個任務(wù),包含多個屬性。以下是一些常見屬性的說明:
- label: 任務(wù)的名稱或標(biāo)簽,用于在任務(wù)列表中標(biāo)識任務(wù)。
- type: 任務(wù)類型,例如
shell
或process
。shell
表示任務(wù)將在 shell 中運行,process
表示任務(wù)將作為獨立的進程運行。 - command: 要執(zhí)行的命令,可以是編譯器、構(gòu)建工具、腳本等。
- args: 傳遞給命令的參數(shù),數(shù)組形式。
- group: 任務(wù)分組,可以設(shè)置為
build
或test
,用于標(biāo)識構(gòu)建任務(wù)或測試任務(wù)。 - presentation: 控制任務(wù)輸出的呈現(xiàn)方式,例如是否顯示在終端中,是否清除之前的輸出等。
- problemMatcher: 配置錯誤和警告的匹配器,用于從任務(wù)輸出中解析錯誤和警告。
- options: 任務(wù)執(zhí)行的選項,例如環(huán)境變量、當(dāng)前工作目錄等。
示例配置
以下是一些常見的 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 運行任務(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 運行任務(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": [] } ] }
常見配置項
- label
任務(wù)的標(biāo)簽名稱,用于在 VS Code 任務(wù)列表中標(biāo)識任務(wù)。
"label": "build"
- type
任務(wù)類型,可以是 shell
或 process
。shell
表示任務(wù)將在 shell 中運行,process
表示任務(wù)將作為獨立的進程運行。
"type": "shell"
- command
要執(zhí)行的命令,例如編譯器、腳本或構(gòu)建工具。
"command": "g++"
- args
傳遞給命令的參數(shù),數(shù)組形式。
"args": [ "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}.out" ]
- group
任務(wù)分組,用于標(biāo)識任務(wù)的類別,可以是 build
或 test
。
"group": { "kind": "build", "isDefault": true }
- presentation
控制任務(wù)輸出的呈現(xiàn)方式。
"presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "shared" }
- problemMatcher
用于解析任務(wù)輸出中的錯誤和警告。VS Code 內(nèi)置了多種匹配器,例如 $gcc
, $eslint
等。
"problemMatcher": ["$gcc"]
- options
任務(wù)執(zhí)行的選項,例如環(huán)境變量、當(dāng)前工作目錄等。
"options": { "cwd": "${workspaceFolder}" }
使用示例
假設(shè)我們有一個 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++" } ] }
這個配置會使用 g++
編譯當(dāng)前打開的 C++ 文件,并將輸出文件放在相同目錄下,文件名與源文件相同但擴展名為 .out
。
通過理解和正確配置 tasks.json
文件,可以極大地提高構(gòu)建和運行任務(wù)的自動化和效率。不同語言和不同項目可能需要不同的配置,用戶可以根據(jù)具體需求進行調(diào)整。
tasks.json與launch.json文件的區(qū)別
tasks.json
和 launch.json
是 Visual Studio Code (VS Code) 中用于配置不同類型任務(wù)的文件,它們各自有不同的用途和配置方式。
tasks.json
tasks.json
用于配置和管理各種任務(wù),例如編譯代碼、運行腳本、構(gòu)建項目等。它定義了一些可以自動執(zhí)行的任務(wù),主要用于自動化構(gòu)建、測試和其他開發(fā)流程。
主要功能和用途:
- 編譯代碼:如編譯 C++ 或 Java 代碼。
- 運行腳本:如執(zhí)行 Python 或 Shell 腳本。
- 構(gòu)建項目:如使用構(gòu)建工具(Make、Gradle、Maven)構(gòu)建項目。
- 其他任務(wù):如清理生成文件、打包等。
主要屬性:
- label: 任務(wù)的名稱或標(biāo)簽。
- type: 任務(wù)類型,例如
shell
或process
。 - command: 要執(zhí)行的命令。
- args: 傳遞給命令的參數(shù)。
- group: 任務(wù)分組,可以設(shè)置為
build
或test
。 - presentation: 控制任務(wù)輸出的呈現(xiàn)方式。
- problemMatcher: 配置錯誤和警告的匹配器。
- options: 任務(wù)執(zhí)行的選項,例如環(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)試器的啟動和運行參數(shù)。它定義了調(diào)試配置,主要用于在調(diào)試會話中啟動程序、附加到正在運行的程序等。
主要功能和用途:
- 啟動調(diào)試會話:配置調(diào)試器如何啟動程序。
- 附加調(diào)試:配置調(diào)試器如何附加到正在運行的程序。
- 設(shè)置斷點和觀察點:調(diào)試過程中設(shè)置斷點和觀察點。
主要屬性:
- type: 調(diào)試器類型,如
python
,cppdbg
,node
,java
等。 - request: 調(diào)試請求類型,通常為
launch
(啟動)或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: 控制臺類型,如
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
:用于配置和管理自動化任務(wù)(如編譯、構(gòu)建、運行腳本等)。launch.json
:用于配置調(diào)試器,定義調(diào)試會話的啟動和運行參數(shù)。
配置內(nèi)容:
tasks.json
:定義要執(zhí)行的任務(wù)及其參數(shù)和選項。launch.json
:定義調(diào)試會話的參數(shù)和選項,包括要調(diào)試的程序、調(diào)試器類型、啟動或附加模式等。
工作流:
tasks.json
:適用于日常開發(fā)中的重復(fù)任務(wù),自動化構(gòu)建和測試流程。launch.json
:適用于調(diào)試代碼,啟動調(diào)試會話或附加到正在運行的程序。
結(jié)合使用
在許多情況下,tasks.json
和 launch.json
可以結(jié)合使用。例如,可以在 launch.json
中定義一個調(diào)試配置,并在調(diào)試前執(zhí)行一個由 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)你啟動調(diào)試會話時,VS Code 會先執(zhí)行 tasks.json
中定義的編譯任務(wù),然后再啟動調(diào)試。
總結(jié)
到此這篇關(guān)于Vscode中l(wèi)aunch.json與tasks.json文件的文章就介紹到這了,更多相關(guān)Vscode launch.json與tasks.json文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
WebStorm最近免安裝參數(shù)免激活碼 真永久激活方法
相信很朋友因為WebStorm最新激活碼或激活補丁的安裝參數(shù)每月都會失效而煩惱,下面小編給大家分享一個一勞永逸的永久激活的方法2020-12-12Jebrains付費插件Activation code[持續(xù)更新]
這篇文章主要介紹了Jebrains付費插件Activation code[持續(xù)更新],使用本Activation code需要jetbrains-agent支持!感興趣的朋友跟隨小編一起看看吧2020-09-09將來會是Python、Java、Golang三足鼎立的局面嗎
python的優(yōu)勢在于數(shù)據(jù)處理和人工智能等方向,所以go只可能吞噬Java的份額,很難撼動Python的奶酪,所以將來會是Python、Java、Golang三足鼎立的局面嗎2019-04-04MobaXterm連接服務(wù)器如何在關(guān)閉會話的情況下依然執(zhí)行程序(最新推薦)
這篇文章主要介紹了MobaXterm連接服務(wù)器如何在關(guān)閉會話的情況下依然執(zhí)行程序,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06