vscode 中 tasks.json schema

发布于:2025-05-11 ⋅ 阅读:(19) ⋅ 点赞:(0)

这里列举了常用的配置项及可选值,但是不是最全的,更详细的说明请查阅字段对应官方文档。

例如runOn 字段,这里写了支持"default""folderOpen"实际上还有其他可选值,请自行查阅,这里知识抛砖引玉,对tasks.json有个全貌了解

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "version": "2.0.0",  // 必选,必须为 "2.0.0"
  "tasks": [           // 必选,任务数组
    {
      // --- 基础标识 ---
      "label": "string",                  // 必选,任务名称(唯一标识)
      "type": ["shell", "process", "npm"], // 必选,任务类型
      "detail": "string",                 // 可选,任务详细描述

      // --- 执行配置 ---
      "command": "string",                // 条件必选(type为shell/process时必填)
      "args": ["string"],                 // 可选,命令参数数组
      "options": {                        // 可选,执行环境配置
        "cwd": "string",                  // 可选,工作目录(默认当前文件夹)
        "env": { "key": "value" },        // 可选,环境变量
        "shell": {                        // 可选,shell配置
          "executable": "string",         // 可选,shell路径
          "args": ["string"]              // 可选,shell参数
        }
      },

      // --- 任务控制 ---
      "group": {                          // 可选,任务分组
        "kind": ["build", "test", "none"], // 必选(如果使用group)
        "isDefault": "boolean"            // 可选,是否默认任务
      },
      "presentation": {                   // 可选,输出显示方式
        "reveal": ["always", "silent", "never"], // 可选,是否展示终端
        "focus": "boolean",                // 可选,是否聚焦终端
        "panel": ["shared", "dedicated", "new"], // 可选,终端面板行为
        "showReuseMessage": "boolean",     // 可选,是否显示复用提示
        "clear": "boolean",                // 可选,运行前是否清空终端
        "echo": "boolean"                  // 可选,是否回显命令
      },
      "problemMatcher": ["string" | {      // 可选,问题匹配器
        "owner": "string",                // 可选,问题所有者
        "pattern": {                      // 必选(自定义匹配器时)
          "regexp": "string",             // 必选,正则表达式
          "file": "integer",              // 可选,文件位置分组
          "line": "integer",              // 可选,行号分组
          "message": "integer"           // 可选,消息分组
        }
      }],
      "dependsOn": ["string" | {          // 可选,依赖任务
        "task": "string",                 // 必选,任务标签
        "type": ["dependsOn", "file"]     // 可选,依赖类型
      }],
      "dependsOrder": ["sequence", "parallel"], // 可选,依赖执行顺序

      // --- 高级配置 ---
      "runOptions": {                      // 可选,运行条件
        "runOn": ["default", "folderOpen"] // 可选,何时运行
      },
      "isBackground": "boolean",           // 可选,是否后台任务
      "icon": {                           // 可选,任务图标(VSCode 1.64+)
        "id": "string",                   // 图标ID
        "color": ["string"]               // 图标颜色
      },

      // --- 类型特定配置 ---
      // 当 type="npm" 时:
      "script": "string",                  // 可选,npm脚本名
      "path": "string",                    // 可选,package.json路径

      // 当 type="docker" 时(需Docker扩展):
      "dockerBuild": {                     // 可选,Docker构建配置
        "tag": "string",                   // 镜像标签
        "dockerfile": "string"             // Dockerfile路径
      },

      // --- 输入配置 ---
      "inputs": [                          // 可选,输入变量
        {
          "id": "string",                  // 必选,变量ID
          "type": ["promptString", "pickString", "command"],
          "description": "string",         // 可选,描述文本
          "default": "string",            // 可选,默认值
          "options": ["string"]            // pickString的选项
        }
      ]
    }
  ]
}