• 欢迎光临~

VSCode 的 launch 和 task 的浅显理解

开发技术 开发技术 2022-07-24 次浏览

本文是理解,不是教程,故不涉及具体配置项或配置字段的含义、用法介绍。

VSCode 是编辑器,本身不知道如何运行程序,所以需要 launch 文件和 task 文件。

launch 文件

launch 文件的作用是告知 VSCode 如何运行一个项目的代码。

在项目目录下新建目录 .vscode,在其中新建 launch.json 文件。以简单 Python 程序为例:

{
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "justMyCode": true
        }
    ]
}

里面各项配置的含义见官网或其他资料。

在项目目录下新建 main.py 文件:

class App:
    @staticmethod
    def main():
        print('good luck')


if __name__ == '__main__':
    App.main()

在 VSCode 界面左侧的 Run and Debug 可以看到 Python: Current File 的发起项,对应 launch.json 中的 configurations 中的一项的 name。
VSCode 的 launch 和 task 的浅显理解

单击运行图标,就可以看到程序的打印。

task 文件

光靠 launch 文件,描述力仍然比较弱。task 可以更加细化 launch 执行时的行为。

一个 launch 项可以配置一个 preLaunchTask 字段,指定 launch 之前运行哪个 task。

{
    "configurations": [
        {
            "name": "xxx",
            "preLaunchTask": "my_task"
        }
    ]
}

task 文件就是 .vscode 目录下(也就是和 launch.json 一起)的 tasks.json。

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "my_task",
            "type": "shell",
            "command": "ls",
            "args": [
                "-l"
            ],
            "options": {
                "cwd": "${workspaceFolder}"
            }
        }
    ]
}

一个 task 还可以用 dependsOn 字段(类型是 string 数组)指定该 task 需要哪些 task 运行之后再运行,如此一来,在项目的启动比较复杂时可以定义一系列 task,并编排它们的依赖关系,使得启动行为更易懂,也更好维护。

VSCode 的 launch 和 task 的浅显理解

程序员灯塔
转载请注明原文链接:VSCode 的 launch 和 task 的浅显理解
喜欢 (0)