vscode 自動(dòng)任務(wù)檢測

2022-07-11 10:46 更新

任務(wù)系統(tǒng)的目的,是將各種形形色色的任務(wù)腳本盡可能地統(tǒng)一化,然后提供一套簡單但又定制化強(qiáng)的方式操作它們。

這里舉個(gè)我自己的例子。比如,我在使用 git 進(jìn)行版本管理,當(dāng)我在終端里要?jiǎng)?chuàng)建一個(gè)的新的分支時(shí),得輸入 git checkout -b branchName,但是要每次都打全這個(gè)命令太麻煩了,于是我自己創(chuàng)建了一個(gè) bash 的別名(alias)gco 用來替代 git checkout -b。而 VS Code 的版本管理更近了一步,它在狀態(tài)欄上添加了一個(gè)按鈕,我只需點(diǎn)擊一下狀態(tài)欄,就可以創(chuàng)建分支了。

任務(wù)系統(tǒng)也希望提供一樣的效果,比如把我們?nèi)粘J褂玫哪_本命令,通過命令面板或者快捷鍵迅速執(zhí)行,并且還可以將這一套快捷操作的方式,分享給工作在同一個(gè)項(xiàng)目上的同事。

任務(wù)自動(dòng)檢測

VS Code 的任務(wù)系統(tǒng)的第一大功能,就是對任務(wù)的自動(dòng)檢測。下面我們一起來看下這個(gè)功能。

如果你的項(xiàng)目或者文件夾里有 typescript、grunt、jake、gulp、npm 這幾個(gè)腳本工具的配置文件的話,VS Code 會(huì)自動(dòng)讀取當(dāng)前文件夾下的配置。舉個(gè)例子,我們打開一個(gè)文件夾,這個(gè)文件夾下有個(gè) package.json 的文件,它是 npm 的配置文件,代碼內(nèi)容如下:

{
 "name": "sample",
 "scripts": {
  "test": ""
 }
}

JSON

然后當(dāng)我們打開命令面板,搜索 “運(yùn)行任務(wù)”(Run Task)時(shí),緊接著我們就能看到兩條跟npm相關(guān)的任務(wù):

  • npm install
  • npm test

第一條npm install是 npm 用于安裝包的命令;第二條 npm test,則是我們在 package.json 里指定的腳本名稱,但是 VS Code 也同樣檢測出來了。

此時(shí)我們選擇 npm install 這條命令的話,VS Code 就會(huì)打開一個(gè)集成終端,然后運(yùn)行這條腳本。

在上面的動(dòng)圖中,除了 npm 的兩條任務(wù),我們還能看到 typescript 關(guān)于編譯的兩條任務(wù),這是因?yàn)楫?dāng)前文件夾下有 tsconfig 文件,VS Code 覺得這是一個(gè) typescript 項(xiàng)目,所以進(jìn)行了自動(dòng)任務(wù)檢測。

上面我們提到的 npm 等五個(gè)腳本工具相關(guān)的任務(wù),VS Code 是會(huì)自動(dòng)檢測的,同時(shí) VS Code 還開放了類似的 API 給插件,允許插件來實(shí)現(xiàn)一樣的功能。比如說我曾經(jīng)在 Ruby 插件里也實(shí)現(xiàn)了 Rake 的自動(dòng)檢測,所以當(dāng)你安裝 Ruby 插件后,打開一個(gè)使用了 Rake 的 Ruby 項(xiàng)目,從命令面板里執(zhí)行 “運(yùn)行任務(wù)”,你同樣可以看到所有的 Rake 任務(wù)。如果你使用的某個(gè)腳本工具相關(guān)的插件還不支持這個(gè)功能,可以去提 issue 建議插件加上。

自動(dòng)檢測任務(wù),還只是小小的第一步,因?yàn)樗皇菑奈覀円呀?jīng)寫好的腳本里把任務(wù)讀取出來。下面我們看看,如何來自己配置任務(wù)。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)