」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 從喬基達爾遷移到

從喬基達爾遷移到

發佈於2024-11-01
瀏覽:262

最近 e18e 領域的一大勝利是 chokidar 發布了新的 4.x 版本!

這個新版本放棄了一大堆依賴關係,並大大簡化了內部邏輯,更依賴現代平台功能。

對於那些不知道 chokidar 是什麼的人 - 它是一個廣泛使用的檔案系統觀察器,它在 Node 自己的觀察功能之上提供了抽象。很可能,它已經在您的依賴樹中的某個位置了!

依賴圖差異

在 chokidar 3.x 中:

Migrating from chokidar  to

在 chokidar 4.x 中:

Migrating from chokidar  to

4.x 中的變化

大多數更改都是內部的,不會影響您使用該庫的方式,但會極大地提高效能。

一些值得注意的變化:

  • 由於 Node 本身現在可以很好地處理跨平台相容性,因此 fsevents 被刪除了
  • ES模組支援
  • 改良的 TypeScript 類型
  • 各種效能改進
  • Glob 支援已刪除

此列表中影響用戶的一個主要變化是刪除了 glob。

沒有球的生活

在 chokidar 3.x 中,可以觀看 glob。例如,我們可以監視 src/*.ts,chokidar 會在內部擴展該模式以監視 src/ 內的所有 TypeScript 檔案。

在 4.x 中,此功能已被刪除,因為您可以使用過濾器或外部 glob 庫實現相同的功能。

範例:

// chokidar v3
watch('src/*.ts');

// chokidar v4 (RegExp)
watch('src', {
  // any path whose end is not preceded by `.ts`
  ignored: /(?
    stats?.isFile() &&
    !path.endsWith('.ts')
});

// chokidar v4 (glob)
// NOTE: this will not watch newly added files. It
// will only watch the initial set of files
import {glob} from 'tinyglobby';
watch(await glob(['src/*.ts']));

在大多數情況下,您可能可以避免使用 glob 庫並使用過濾函數或 RegExp 代替(在許多情況下這也會更快)。

回饋

如果您升級後有任何回饋或發現任何錯誤,我們很樂意透過問題聽取您的意見。

您還可以在 e18e 不和諧中看到我們中的許多人正在努力將流行的軟體包從 3.x 遷移到 4.x。

版本聲明 本文轉載於:https://dev.to/43081j/migrating-from-chokidar-3x-to-4x-5ab5?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3