vscode中launch.json、tasks.json的作用及實例

文章目錄

  • launch.json是什么
  • 作用
  • 多環境調試簡單實例
  • 進階使用
    • 核心配置項解析
    • 調試第三方程序

launch.json是什么

  • 顧名思義:它是在.vscode文件夾下的launch.json,所以是vscode啟動調試的配置文件。
  • 總結:通過定義調試參數、環境變量和啟動方式,幫助開發者快速啟動和調試代碼。

作用

  • 簡化調試流程:通過預設參數(如啟動文件、命令行參數、環境變量等),避免每次調試時手動輸入重復命令。
  • 支持多環境調試:可同時配置多個調試方案,一鍵切換不同場景。

多環境調試簡單實例

  • 假設現在你要寫一個工具,需要用到多種語言(node.js、python等)
  • 每個單獨的nodejs/py文件運行都需要在命令行/terminal輸入一下調用的命令及文件名(很麻煩)
  • 為了簡化運行,配置如下launch.json:
{"version": "0.2.0","configurations": [{"type": "node","request": "launch","name": "調試extracted.js","skipFiles": ["<node_internals>/**"],"program": "${workspaceFolder}\\tool_chinese_strings_extracted.js"},{"type": "node","request": "launch","name": "調試log.js","skipFiles": ["<node_internals>/**"],"program": "${workspaceFolder}\\tool_log.js"},{"type": "node","request": "launch","name": "調試testBp.js","skipFiles": ["<node_internals>/**"],"program": "${workspaceFolder}\\testBp.js"},{"name": "調試py_replace","type": "debugpy","request": "launch","program": "${workspaceFolder}\\tool_replacer.py",},{"name": "調試py_genxls","type": "debugpy","request": "launch","program": "${workspaceFolder}\\tool_excel_generator.py",},{"name": "調試py_notepad","type": "debugpy","request": "launch","program": "${workspaceFolder}\\tool_log.py",}]
}
  • 得到快捷F5執行列表:
    在這里插入圖片描述
  • 這樣就很方便(以上是簡單的示例)。

進階使用

核心配置項解析

{// 使用 IntelliSense 了解相關屬性。 // 懸停以查看現有屬性的描述。// 欲了解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "Python: 當前文件", //調試方案的名稱(顯示在調試下拉菜單中)"type": "python", //調試器類型(如 python、node、cppdbg、chrome、debugpy等)//調試啟動方式,常用 launch(啟動新進程)或 attach(附加到已有進程)"request": "launch", //調試啟動方式// (${file} 表示當前打開的文件)    ${workspaceFolder} 表示項目根目錄"program": "${file}", //要運行的程序入口文件//指定要調試的入口文件(例如 HTML 文件)。在瀏覽器調試場景中,替代 program 字段。             "file": "${workspaceRoot}/bin/index.html",//控制臺類型(如 integratedTerminal 使用VSCode內置終端)"console": "integratedTerminal", "args": ["--input", "data.txt"], //傳遞給程序的命令行參數"env": {"DEBUG_MODE": "true"} //設置環境變量// 以下可選參數// 默認使用系統默認瀏覽器,但可通過此字段自定義(如:"C:/chrome.exe")"runtimeExecutable": "chrome" //"${execPath}" //${execPath} 表示 VS Code 的安裝路徑// 啟用源映射(Source Maps),將壓縮/編譯后的代碼映射回原始源代碼,便于調試。"sourceMaps": true // (適用于 TypeScript、Babel 等轉譯場景。// 定義 Web 服務器的根目錄路徑,幫助調試器定位源代碼文件(尤其是與源映射配合時)。"webRoot": "${workspaceRoot}" //表示項目根目錄為 Web 根目錄。"port": 8090 //指定調試會話使用的端口號(默認由調試器自動分配)。// 向瀏覽器運行時傳遞命令行參數,用于控制瀏覽器行為(例如禁用安全策略、啟用文件訪問)"runtimeArgs": ["--allow-file-access-from-files", //允許通過 file:// 協議訪問本地文件。"--disable-web-security" //禁用瀏覽器同源策略(開發時常用,但需謹慎)。]//指定 Chrome 瀏覽器的用戶數據目錄。//通過隔離用戶數據(如緩存、歷史記錄),避免調試會話影響日常瀏覽器使用。"userDataDir": "${workspaceRoot}/.laya/chrome" //將用戶數據存儲在項目目錄下的 .laya/chrome 文件夾中。//覆蓋源映射(Source Maps)中的路徑,解決編譯后路徑與本地路徑不一致的問題。"sourceMapPathOverrides": { //將編譯后代碼中的 src/ 路徑映射到本地項目的 src/ 目錄。"src/": "${workspaceRoot}/src/"}// 指定調試時要跳過的文件或目錄,避免進入無關代碼(如Node.js內部模塊或第三方庫)//讓調試過程聚焦于用戶自己的代碼。//<node_internals> 是VSCode預定義的路徑別名,表示Node.js的核心模塊(如fs、path等)。//  /** 表示跳過所有子目錄和文件。調試時,單步調試(如F10)會直接跳過這些文件,不會進入其內部。"skipFiles": ["<node_internals>/**"]"skipFiles": [ //這會同時跳過Node核心模塊和項目的node_modules目錄"<node_internals>/**","${workspaceFolder}/node_modules/**"]}]
}

調試第三方程序

  • 通過 “preLaunchTask” 和 “postDebugTask” 配置調試前后自動執行的任務(需配合 tasks.json 使用)。
  • 簡單實例:
// 創建 tasks.json(在 .vscode 文件夾下)
{"version": "2.0.0","tasks": [{"label": "安裝依賴",       // 任務名稱(在 launch.json 中引用)"type": "shell",         // 任務類型(執行shell命令)"command": "npm install",// 調試前自動安裝依賴"problemMatcher": []},{"label": "清理臨時文件","type": "shell","command": "rm -rf ./tmp/*", // 調試后清理臨時文件(Windows 可用 `del .\\tmp\\*`)"problemMatcher": []}]
}
//launch.json(通過tasks的label關聯任務)
{"version": "0.2.0","configurations": [{"name": "啟動調試","type": "node","request": "launch","program": "${workspaceFolder}/app.js",//調試啟動前必須完成的任務(若任務失敗,調試不會啟動)。"preLaunchTask": "安裝依賴",   // 調試前自動執行的任務名稱 // 調試結束后自動觸發的任務(無論調試成功或失敗)。"postDebugTask": "清理臨時文件" // 調試后自動執行的任務名稱}]
}
  • 執行流程說明:
    1.啟動調試(按 F5)時:
    – 先執行 preLaunchTask → 運行 npm install 安裝依賴。
    – 依賴安裝成功后,啟動調試(運行 app.js)。
    2.結束調試 后:
    – 自動執行 postDebugTask → 清理 ./tmp 目錄下的臨時文件。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/83143.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/83143.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/83143.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

NeRF PyTorch 源碼解讀 - 體渲染

文章目錄 1. 體渲染公式推導1.1. T ( t ) T(t) T(t) 的推導1.2. C ( r ) C(r) C(r) 的推導 2. 體渲染公式離散化3. 代碼解讀 1. 體渲染公式推導 如下圖所示&#xff0c;渲染圖像上點 P P P 的顏色值 c c c 是累加射線 O P → \overrightarrow{OP} OP 在近平面和遠平面范圍…

標題:2025海外短劇爆發年:APP+H5雙端系統開發,解鎖全球流量與變現新大陸

描述&#xff1a; 2025年出海新風口&#xff01;深度解析海外短劇系統開發核心&#xff08;APPH5雙端&#xff09;&#xff0c;揭秘高效開發策略與商業化路徑&#xff0c;助您搶占萬億美元市場&#xff01; 全球娛樂消費模式正在劇變。2025年&#xff0c;海外短劇市場已從藍海…

React JSX語法介紹(JS XML)(一種JS語法擴展,允許在JS代碼中編寫類似HTML的標記語言)Babel編譯

在線調試網站&#xff1a;https://zh-hans.react.dev/learn 文章目錄 JSX&#xff1a;現代前端開發的聲明式語法概述JSX的本質與工作原理什么是JSXJSX轉換流程 JSX語法特性表達式嵌入&#xff08;JSX允許在大括號內嵌入任何有效的JavaScript表達式&#xff09;屬性傳遞&#xf…

Unity UI系統中RectTransform詳解

一、基礎代碼示例 public GameObject node; var rect node.GetComponent<RectTransform>();Debug.Log($"anchoredPosition----{rect.anchoredPosition}"); Debug.Log($"offsetMin.x--{rect.offsetMin}"); Debug.Log($"offsetMax.x--{rect.of…

【數據庫】并發控制

并發控制 在數據庫系統&#xff0c;經常需要多個用戶同時使用。同一時間并發的事務可達數百個&#xff0c;這就是并發引入的必要性。 常見的并發系統有三種&#xff1a; 串行事務執行&#xff08;X&#xff09;&#xff0c;每個時刻只有一個事務運行&#xff0c;不能充分利用…

我們來學mysql -- “數據備份還原”sh腳本

數據備份&還原 說明執行db_backup_cover.sh腳本 說明 環境準備&#xff1a;來源數據庫(服務器A)&#xff1b;目標數據庫(服務器B)dbInfo.sh腳本記錄基本信息 來源庫、目標庫的ip、port及執行路徑 # MySQL 客戶端和 mysqldump 的路徑 MYSQL_CLIENT"/work/oracle/mysql…

【NLP 78、手搓Transformer模型結構】

你以為走不出的淤泥&#xff0c;也遲早會云淡風輕 —— 25.5.31 引言 ——《Attention is all you need》 《Attention is all you need》這篇論文可以說是自然語言處理領域的一座里程碑&#xff0c;它提出的 Transformer 結構帶來了一場技術革命。 研究背景與目標 在 Transfo…

深入理解CSS常規流布局

引言 在網頁設計中&#xff0c;理解元素如何排列和相互作用至關重要。CSS提供了三種主要的布局方式&#xff1a;常規流、浮動和定位。本文將重點探討最基礎也是最常用的常規流布局&#xff08;Normal Flow&#xff09;&#xff0c;幫助開發者掌握頁面布局的核心機制。 什么是…

樹結構詳細介紹(javascript版)

樹結構的基本概念 樹是一種非線性數據結構&#xff0c;由節點和連接節點的邊組成。與線性數據結構&#xff08;如數組、鏈表&#xff09;不同&#xff0c;樹具有層次結構&#xff0c;非常適合表示有層次關系的數據。 樹的基本術語 節點 (Node)&#xff1a; 樹中的基本單元&a…

element-plus bug整理

1.el-table嵌入el-image標簽預覽時&#xff0c;顯示錯亂 解決&#xff1a;添加preview-teleported屬性 <el-table-column label"等級圖標" align"center" prop"icon" min-width"80"><template #default"scope"&g…

RabbitMQ和MQTT區別與應用

RabbitMQ與MQTT深度解析&#xff1a;協議、代理、差異與應用場景 I. 引言 消息隊列與物聯網通信的重要性 在現代分布式系統和物聯網&#xff08;IoT&#xff09;生態中&#xff0c;高效、可靠的通信機制是構建穩健、可擴展應用的核心。消息隊列&#xff08;Message Queues&am…

零基礎遠程連接課題組Linux服務器,安裝anaconda,配置python環境(換源),在服務器上運行python代碼【3/3 適合小白,步驟詳細!!!】

遠程連接服務器 請查閱之前的博客——零基礎遠程連接課題組Linux服務器&#xff0c;安裝anaconda&#xff0c;配置python環境&#xff08;換源&#xff09;&#xff0c;在服務器上運行python代碼【1/3 適合小白&#xff0c;步驟詳細&#xff01;&#xff01;&#xff01;】&am…

Redis最佳實踐——安全與穩定性保障之訪問控制詳解

Redis 在電商應用的安全與穩定性保障之訪問控制全面詳解 一、安全訪問控制體系架構 1. 多層級防護體系 #mermaid-svg-jpkDj2nKxCq9AXIW {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-jpkDj2nKxCq9AXIW .error-ico…

vue2源碼解析——響應式原理

文章目錄 引言數據劫持收集依賴數組處理渲染watchervue3中的響應式 引言 vue的設計思想是數據雙向綁定、數據與UI自動同步&#xff0c;即數據驅動視圖。 為什么會這樣呢&#xff1f;這就不得不提vue的響應式原理了&#xff0c;在使用vue的過程中&#xff0c;我被vue的響應式設…

gcc相關內容

gcc 介紹&#xff1a;linux就是由gcc編譯出來的&#xff0c;而且好像之前Linux只支持gcc編譯。gcc全稱為gnu compiler collection&#xff0c;它是gnu項目的一個組成部分。gnu致力于創建一個完全自由的操作系統&#xff0c;我感覺意思就是完全開源的操作系統。gnu有很多組件和…

android 圖片背景毛玻璃效果實現

圖片背景毛玻璃效果實現 1 依賴 // Glide implementation("com.github.bumptech.glide:glide:4.16.0") kapt("com.github.bumptech.glide:compiler:4.16.0") implementation("jp.wasabeef:glide-transformations:4.3.0") 2 布局<com.googl…

【Java開發日記】你會不會5種牛犇的yml文件讀取方式?

前言 除了爛大街的Value和ConfigurationProperties外&#xff0c;還能夠通過哪些方式&#xff0c;來讀取yml配置文件的內容&#xff1f; 1、Environment 在Spring中有一個類Environment&#xff0c;它可以被認為是當前應用程序正在運行的環境&#xff0c;它繼承了PropertyReso…

Spring Boot事務失效場景及解決方案

事務失效場景1&#xff1a;方法非public修飾 原因 Spring事務基于動態代理&#xff08;AOP&#xff09;實現&#xff0c;非public方法無法被代理攔截&#xff0c;導致事務失效。 代碼示例 Service public class OrderService {Transactionalprivate void createOrder() { //…

電子電路:怎么理解時鐘脈沖上升沿這句話?

時鐘脈沖是數字電路中用于同步各組件操作的周期性信號&#xff0c;通常表現為高低電平交替的方波。理解其關鍵點如下&#xff1a; 時鐘脈沖的本質&#xff1a; 由晶振等元件生成&#xff0c;呈現0/1&#xff08;低/高電平&#xff09;的規律振蕩每個周期包含上升沿→高電平→下…

docker部署redis mysql nacos seata rabbitmq minio onlyoffice nginx實戰

docker部署redis mysql nacos seata rabbitmq minio onlyoffice nginx實戰 一、環境介紹 操作系統&#xff1a;ubuntu22.04 軟件環境&#xff1a;docker、docker-compose 二、docker安裝 版本規定到26.1.3版本過低會引起莫名其妙的問題。打開終端。更新軟件包列表&#x…