You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VS Code启动时运行多任务且各任务使用不同工作目录?

VS Code 多项目启动任务配置方案

1. 解决子目录执行命令问题的基础任务配置

在.vscode/tasks.json里,通过cwd字段指定命令执行的子目录,就能实现进入对应路径运行指令。同时可以用复合任务整合所有项目任务,实现VS Code启动时自动批量执行。

完整tasks.json示例

{
  "version": "2.0.0",
  "tasks": [
    // Project1:folder2 启动docker compose
    {
      "label": "project1: folder2 docker up",
      "type": "shell",
      "command": "docker compose start",
      "cwd": "${workspaceFolder}/project1/folder1/folder2",
      "problemMatcher": []
    },
    // Project1:folder3 启动docker compose
    {
      "label": "project1: folder3 docker up",
      "type": "shell",
      "command": "docker compose start",
      "cwd": "${workspaceFolder}/project1/folder1/folder3",
      "problemMatcher": []
    },
    // Project2:folder4 启动docker
    {
      "label": "project2: docker start",
      "type": "shell",
      "command": "docker start",
      "cwd": "${workspaceFolder}/project2/folder4",
      "problemMatcher": []
    },
    // Project3:执行ng lint
    {
      "label": "project3: ng lint",
      "type": "shell",
      "command": "ng lint",
      "cwd": "${workspaceFolder}/project3",
      "problemMatcher": ["$tslint5"]
    },
    // Project3:启动ng serve(依赖lint执行完成)
    {
      "label": "project3: ng serve",
      "type": "shell",
      "command": "ng serve",
      "cwd": "${workspaceFolder}/project3",
      "problemMatcher": [],
      "dependsOn": ["project3: ng lint"]
    },
    // 复合任务:整合所有项目的shell任务,启动时自动执行
    {
      "label": "all-projects-start",
      "dependsOn": [
        "project1: folder2 docker up",
        "project1: folder3 docker up",
        "project2: docker start",
        "project3: ng serve"
      ],
      "dependsOrder": "parallel", // 并行执行所有任务,需串行改为"sequence"
      "runOptions": {
        "runOn": "folderOpen"
      }
    }
  ]
}

2. 整合Project4的Launch任务

要自动启动已有的launch任务,有两种实现方式:

方式1:通过任务触发launch配置

在tasks.json中新增一个调用launch任务的配置,然后加入到复合任务的依赖列表:

{
  "label": "start-project4-launch",
  "type": "shell",
  "command": "${command:extension.vscode.debug.start}",
  "args": ["你的Project4 launch名称"], // 替换为launch.json中Project4配置的name字段
  "problemMatcher": []
}

将start-project4-launch添加到all-projects-start的dependsOn数组即可。

方式2:直接配置launch自动启动

修改.vscode/launch.json,给Project4的launch配置添加自动启动规则:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "你的Project4 launch名称",
      // 原有配置保持不变
      "runOptions": {
        "runOn": "folderOpen"
      }
    }
  ]
}

关键配置说明

  • cwd:指定命令执行的工作目录,${workspaceFolder}对应VS Code当前工作区根路径,拼接子目录即可进入对应位置执行命令。
  • dependsOn:设置任务依赖,比如让ng serve等待ng lint执行完成再启动。
  • dependsOrder:复合任务的执行顺序,parallel为并行启动,sequence为按顺序逐个执行。
  • runOn: "folderOpen":实现VS Code启动时自动触发对应任务。

内容的提问来源于stack exchange,提问作者user20032745

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 20:35:05