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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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…