这里列举了常用的配置项及可选值,但是不是最全的,更详细的说明请查阅字段对应官方文档。
例如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的选项
}
]
}
]
}