Files
Obsidian-Main/00. Inbox/請問 tasks.json 要怎麼用?sitecode.visualstudio.com.md
Awin Huang 3e958a454a vault backup: 2025-03-13 23:11:10
Affected files:
00. Inbox/請問 tasks.json 要怎麼用?sitecode.visualstudio.com.md
30. 工作 - Logitech/project - kirby.md
2025-03-13 23:11:10 +08:00

12 KiB
Raw Blame History

title, author, tags, date, time, description, source, published
title author tags date time description source published
請問 tasks.json 要怎麼用site:code.visualstudio.com
Felo
clippings
2025-03-13T23:10:57+08:00 2025-03-13T23:10:57+08:00 # Visual Studio Code 中的 tasks.json 使用指南tasks.json 是 Visual Studio Code 中用於定義和配置任務的檔案,這些任務可以自動化您的開發工作流程,例如編譯程式碼、執行測試或部署應用程式。## 基本概念tasks.json 檔案通常位於專案的 `.v https://felo.ai/search/ccdXpZ3og78S9XHjW3NcgV?invite=dOLn1YloyaD3j

網際網路17 個資料來源1 種語言Claude 3.7 Sonnet

回答完成

Visual Studio Code 中的 tasks.json 使用指南

tasks.json 是 Visual Studio Code 中用於定義和配置任務的檔案,這些任務可以自動化您的開發工作流程,例如編譯程式碼、執行測試或部署應用程式。

基本概念

tasks.json 檔案通常位於專案的 .vscode 資料夾中,用於定義可以在 VS Code 中執行的任務。這些任務可以是建置程式碼、執行測試、啟動伺服器等各種操作4

建立 tasks.json 檔案

要建立 tasks.json 檔案,您可以:

  1. 使用快捷鍵 Ctrl+Shift+B (Windows/Linux) 或 ⇧⌘B (macOS) 執行「執行建置任務」命令
  2. 如果尚未設定任務VS Code 會提示您建立 tasks.json 檔案
  3. 或者,您可以手動在專案的 .vscode 資料夾中建立此檔案

tasks.json 的基本結構

一個基本的 tasks.json 檔案結構如下:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "任務名稱",
      "type": "shell",
      "command": "要執行的命令",
      "group": {
        "kind": "build",
        "isDefault": true
      },
      "problemMatcher": ["$msCompile"]
    }
  ]
}

重要屬性說明

tasks.json 中的主要屬性包括:

  • label: 任務的名稱,會顯示在任務列表中,建議使用描述性名稱以便區分不同任務78
  • type: 任務類型,常見的有 shell(在殼層中執行命令)和 process(直接執行程序)
  • command: 要執行的命令
  • args: 命令的參數,以陣列形式提供
  • group: 任務分組,例如 build(建置)或 test(測試),可以設定 isDefault: true 來指定預設任務
  • problemMatcher: 用於解析命令輸出中的錯誤和警告,例如 $msCompile(適用於 Microsoft 編譯器)或 $gcc(適用於 GCC78

使用變數

tasks.json 支援變數替換,使用 ${variableName} 語法。常用的預定義變數包括:

  • ${workspaceFolder}: VS Code 中開啟的資料夾路徑
  • ${file}: 目前開啟的檔案
  • ${fileBasename}: 目前開啟檔案的基本名稱
  • ${fileBasenameNoExtension}: 不含副檔名的檔案名稱
  • ${fileDirname}: 目前開啟檔案的資料夾路徑5

例如,編譯 C++ 檔案的任務可能使用:

{
  "command": "g++",
  "args": ["${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}.exe"]
}

使用者輸入變數

您可以在任務中使用使用者輸入變數,讓使用者在執行任務時提供值:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "任務名稱",
      "command": "${input:variableID}"
    }
  ],
  "inputs": [
    {
      "id": "variableID",
      "type": "promptString",
      "description": "請輸入值"
    }
  ]
}

支援的輸入類型有:

  • promptString: 顯示輸入框獲取字串
  • pickString: 顯示下拉選單讓使用者選擇
  • command: 執行命令並使用其結果5

特定平台的任務配置

tasks.json 支援針對不同程式語言和平台的特定配置:

C/C++ 任務範例

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "建置 C++ 檔案",
      "type": "shell",
      "command": "g++",
      "args": ["${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}.exe"],
      "group": {
        "kind": "build",
        "isDefault": true
      },
      "problemMatcher": ["$gcc"]
    }
  ]
}

TypeScript 任務範例

{
  "version": "2.0.0",
  "tasks": [
    {
      "type": "typescript",
      "tsconfig": "tsconfig.json",
      "problemMatcher": ["$tsc"],
      "group": {
        "kind": "build",
        "isDefault": true
      }
    }
  ]
}

任務相依性

您可以使用 dependsOn 屬性定義任務之間的相依關係,確保任務按特定順序執行:

{
  "label": "執行",
  "type": "shell",
  "command": "node app.js",
  "dependsOn": ["建置"]
}

使用 IntelliSense

在編輯 tasks.json 檔案時,可以使用 VS Code 的 IntelliSense 功能獲取完整的任務屬性和值列表。只需按下 Ctrl+Space 觸發建議4

執行任務

定義任務後,您可以通過以下方式執行:

  1. 使用快捷鍵 Ctrl+Shift+B 執行預設建置任務
  2. 使用命令面板 (Ctrl+Shift+P) 執行「任務:執行任務」命令,然後選擇要執行的任務

透過正確配置 tasks.json您可以大幅提高開發效率自動化重複性工作並簡化開發工作流程。

相關

tasks.json 檔案的版本號有什麼意義?如何在 tasks.json 中使用變數來提高靈活性tasks.json 支援哪些程式語言的特定配置?如何設定任務之間的相依性以確保執行順序?在 VS Code 中使用 IntelliSense 來編輯 tasks.json 有哪些好處?

1

code.visualstudio.com > docs > getstarted > tips-and-tricks

視覺工作室代碼提示和技巧

例如tasks.json用於任務跑者和啟動。 使用首選項:顏色主題命令或使用鍵盤快捷鍵。

2

code.visualstudio.com > docs > containers > reference

自定義Docker擴展名 - Visual Studio代碼

這些任務允許大量控制和自定義。 最終配置是一般默認值平台特定默認值例如Node.jsPython或.NET和用戶輸入的組合。 當用戶輸入與默認情況發生衝突時。 任務使用Docker命令行CLI構建Docker圖像。 該任務可以自身使用也可以用作使用Docker容器運行和/或調試應用程序的一系列任務的一部分。 任務intaks.json可用於構建任何docker映像擴展名具有明確的支持和簡化的配置。 除非從平台中推斷出。-t或\ -tagbuildargsbuild參數應用於命令行。 這是鍵值對的列表。 這是鍵值對JSON對象的列表。 除了此處指定的標籤外labelcom.microsoft.created-by還將設置tovisual-studio-code添加到圖像中。 可以通過setterincludedEfaults |可以關閉此行為|屬性|描述|| --- | --- || AppProject | .NET項目文件.csproj.fsproj等與Dockerfile和Docker-Build任務關聯。 總是需要。 |。 該任務可以自身使用也可以作為一系列任務的一部分來調試使用docker容器的應用程序。 該對象指定的值直接應用於Docker Run Clica。*平台屬性是一個提示該提示會更改Docker-Run任務Defeults運行默認值。 support supports theNode.jsdocker-run{“版本”:“ 2.0.0”,“ tasks”\ [{label“” run node image““ node”“ docker-run”“ docker-run”“ platform”“ node” \ node“ \] \] \] \]} \ platform defaultS-defaults-defaults-defaults-defaults-defaults-dodeaults-depkes任務提出以下選項|屬性|推斷值|| --- | --- || dockerrun.command |從package.json如果存在中從npm啟動腳本生成則是從poffage.json中的主屬性生成的。 || dockerrun.containername |源自應用程序包名稱。 || dockerrun.image |來自依賴的Dock-Build任務如果存在或從應用程序包名稱派生的標籤本身是從軟件包中的名稱屬性派生的。 |。 |屬性|推斷值|| --- | --- || dockerrun.command |由Python對像生成由Python調試器調用。 || dockerrun.containername |源自根工作區文件夾的基本名稱。 || dockerrun.image |來自依賴的Dock-build任務如果存在或從根工作區文件夾的基本名稱派生的標籤。 |。圖像,|屬性|推斷值|| --- | --- || dockerrun.containername |源自根工作區文件夾的基本名稱。 || dockerrun.env |根據需要添加以下環境雜物aspnetcore \ _environmentaspnetcore \ _urls和dotnet \ _polling \ _file \ _watcher。 || dockerrun.image |來自依賴的Dock-build任務如果存在或從根工作區文件夾的基本名稱派生的標籤。 || dockerrun.os | Linux || dockerrun.volumes |根據需要添加以下卷本地應用程序文件夾源文件夾調試器文件夾Nuget軟件包文件夾和Nuget後備文件夾。 |。 除非另有說明,否則所有屬性都是可選的。屬性|描述|| --- | --- || Dockerrun |控制Docker Run命令執行的選項請參見下文。 除非設置平台,否則需要。 ||平台|確定平台:.NETNetCore或Node.js節點和Docker Run命令的默認設置。 ||節點|對於Node.js項目這控制了各種選項請參見下文。 || python |對於Python項目這控制了各種選項請參見下文。 || NetCore |對於.NET項目這控制了各種選項請參見下文。 ||屬性|描述|默認|| --- | --- | --- || LocalPath |將映射的本地計算機上的路徑。 必需的。 | ||容器路徑|將映射本地路徑的容器中的路徑。 必需的。 | ||滲透|容器在映射路徑上具有權限。 可以是RO或RW讀 - 沃里炎)。 |容器依賴。 |任務)|屬性|描述|默認|| --- | --- | --- ||軟件包|與Docker-Surruin任務關聯的package.json文件的路徑。 | root工作區文件夾中的文件package.json。 || EnabledeBugging |是否可以使用容器進行調試。 | false || Inspectmode |定義最初的相互作用,使應用程序和調試器(默認或斷點)。 值默認值允許應用程序運行,直到調試器附加。 值斷點阻止應用程序運行,直到調試器附加。 |默認|| Inspectport |應該進行調試的端口。 | 9229 |。 5678 |。 | ||文件|要運行的Python文件。 | |。NetCore對象屬性|屬性|描述| ---- | --- ||批准| .NET項目文件.csproj.fsproj等 必需的。 || cunpussl |是否配置ASP.NET Core SSL證書和OHER設置以在容器中啟用SSL。 || EnabledeBugging |是否啟用啟動容器進行調試。 這將推斷出addite卷映射和調試所需的其他選項。 |使用Docker Compose LineCLI創建並啟動Docker容器。 該任務可以自身使用也可以作為一系列任務的一部分來調試使用Docker容器的應用程序。UP必須指定但不能同時指定。Docker-Compose Docker downfilesthe docker列表complocker complote complots yaml文件以在thedocker-compose命令中使用。 如果未指定則在命名和標記Docker對象時使用的Docker Composite CLOS FOALLETE項目名稱。 如果在編寫時使用替代項目名稱,則必須在撰寫時指定相同的項目名稱。 對於這些可自定義的Docker命令配置設置可用於設置執行內容的模板。 另外,您可以選擇使用正則表達式定義多個模板,該模板在匹配時暗示應使用模板的上下文。 這些模板支持一些與thedocker.com的值相似的令牌設置否則將嘗試自動確定要使用的命令

3

code.visualstudio.com > docs > reference > tasks-appendix

附錄 - 視覺工作室代碼

注意某些任務選項由VS代碼擴展程序貢獻。 您可以使用任務。JSONIntellisense使用觸發建議找到完整的列表...

Visual Studio Code tips and tricks

參考來源

  • [請問 tasks.json 要怎麼用?

site:code.visualstudio.com](https://felo.ai/search/ccdXpZ3og78S9XHjW3NcgV?invite=dOLn1YloyaD3j)