VSCode中 task.json 和 launch.json 的作用和参数解释以及配置教程

2024-07-01 1626阅读

前言

由于 VS Code 并不是一个传统意义上的 IDE,所以初学者可能在使用过程中会有很多的疑惑,其中比较常见的一个问题就是 tasks.json和 launch.json两个文件分别有什么作用以及如何配置

tasks.json

VSCode 官网提供的 tasks.json 配置教程

使用不同的编程语言可能有不同的开发流程,比如 C/C++ 就需要编译(广义编译,包括了链接)、运行、测试、打包等等流程,而 Python 只需要运行即可,为了把各种语言的不同开发流程抽象成同一套流程,于是有了编码(Code)— 构建(build)— 运行/调试(run/debug)— 测试 (test) — 打包(package) 等等,其中每个环节都可以认为是一个 task,所以可以利用 tasks.json来手动完成那些使用 IDE 时被隐藏的开发流程细节

type 参数

每个 task 都有一个 type 类型,VSCode 为 tasks.json 提供了一些内置的类型支持,比如 “npm”,但是其他语言的类型就需要通过插件来支持,用户自制的 task 一般使用 “shell” 或者 “process” 即可

label 参数

只是一个名称,没有特殊作用

command 参数

关键参数,表示传给 shell 的命令

args 参数

command 后面所跟的参数

launch.json

VSCode 官网提供的 launch.json 的配置教程

为了 调试 程序,仅靠 tasks.json 还不够用户友好,如果需要在 VSCode 编辑器界面中调试代码,就需要配置 launch.json,它和 tasks.json一样,都是VSCode编辑器自带的内置功能,而不是某个插件提供的功能,但是插件提供了扩展,比如原生的 VSCode 仅支持 JavaScript 和 TypeScript 等极少几种语言的调试,但是安装了微软官方提供的 C++ 插件后,就可以做到调试 C++ 程序了

6 种运行程序的方式的区别和背后的原理

在使用 VSCode 编写 C++ 程序时,直观感受是有三种让程序跑起来的方法,分别是:

方法1:在左侧导航栏中

VSCode中 task.json 和 launch.json 的作用和参数解释以及配置教程

点击 Run and Debug 即可开始执行 launch.json中配置的调试(或者运行)任务

方法2:按 F5 运行

本质上就是方法1的快捷键,没有区别,如果按 ctrl + F5的话会以 Run 的方式启动运行,跳过断点(某些语言不支持直接运行的功能)

方法3:点击右上角的按钮执行

VSCode中 task.json 和 launch.json 的作用和参数解释以及配置教程

VSCode中 task.json 和 launch.json 的作用和参数解释以及配置教程

本质上也是通过 VSCode自带调试接口 + 插件提供的功能具体实现 + launch.json 中的配置信息 启动的调试,有趣的是,图中前两项在 launch.json 并不存在的时候也能正常启动运行,这是因为 C++ 插件提供了一些对 launch.json的简单实现,免去了对及其简单的程序再编写一次 launch.json的麻烦,下面的三个选项都是我自己在 launch.json中定义的运行任务

方法4:通过 tasks.json 中的 build 任务进行构建,然后再在 Terminal 中手动启动

这种方法对应着快捷键 ctril + shift + B,运行默认构建任务,然后再自己另起终端运行即可

方法5:在 Terminal 中手动执行编译命令,再运行执行命令

此处省略

方法6:利用第三方构建工具(如cmake),然后启动

此处省略

总结

tasks.json和launch.json两个文件分别对应着 VSCode 对于不同的开发语言所抽象出来的各个共同的开发环节的细粒度控制,前者控制构建环节(其实理论上可以控制任何过程),后者控制运行和调试环节。而且我们很多日用而不自知的许多运行程序的操作背后,其实都是 launch.json 在以不同的形式和同样的原理在起作用

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]