2023 年 2 月 28 日星期二
作者:Allan Jardine

外掛程式載入器

外掛程式是 DataTables 生態系統中非常重要的一部分。它們擴展了 DataTables 的功能,將常見操作封裝到簡單的函數中,並提供了一種在社群中共享程式碼的方式。我們將自己開發的外掛程式以及社群提交的外掛程式儲存在我們的 外掛程式儲存庫中,並在此網站上記錄它們。然而,到目前為止,外掛程式的編寫方式還沒有太多一致性。隨著今天 DataTables 1.13.3 的發布,以及隨之而來的外掛程式儲存庫,這種情況現在已經改變。

現在所有的外掛程式

  • 都由 Prettier More 格式化(基本上是 Prettier,但有一些額外選項)。
  • 提供多種載入器選項
    • ESM
    • CommonJS
    • AMD
    • 瀏覽器
  • 為自己提供 Typescript 定義。

請注意,這些規則有兩個例外情況

  • 分頁外掛程式尚未更新。DataTables 中的分頁 API 需要改進,這將在未來版本中解決。
  • 舊版外掛程式尚未更新,因為它們不再需要(例如,貨幣排序)。

使用外掛程式

每個外掛程式類型的文件都已更新,因此您不會不知道如何實際使用外掛程式。如果我們以 average() API 外掛程式 為例,您將能夠看到它有以下說明

  • 從我們的 CDN 在瀏覽器中載入(或者您可以下載並在本地託管它)
  • 透過 datatables.net-plugins NPM 套件安裝,然後
    • 作為 ES 模組載入,或者
    • 作為 Common JS 模組載入。

持續轉向 ESM 和 Typescript

如果您一直關注 DataTables 的開發,您會知道所有新的 DataTables 軟體的開發都使用了 Typescript(例如,Editor 2、SearchPanes、SearchBuilder 等),雖然我並不打算將整個程式碼庫完全遷移到 Typescript,但我致力於為任何我們的原生 Javascript 函式庫完全支援 Typescript 類型定義。如果您導入外掛程式,您現在將會看到透過外掛程式類型定義自動提示。例如,這是 AlphabetSearch 功能外掛程式的定義

DataTables 也隨著 Javascript 生態系統的其餘部分轉向 ES 模組。DataTables 核心、Editor 和擴充功能都支援 ESM 載入器,同時繼續支援現有的 CommonJS、AMD 和瀏覽器載入器。外掛程式的這次更新完成了我們支援的軟體透過任何這些載入器使用的能力。當使用像 Vite 這樣的現代捆綁器時,將會自動選擇 ESM 載入器並進行最佳化。

貢獻

有外掛程式的想法嗎?請前往 外掛程式儲存庫並提交包含您的外掛程式的提取請求(翻譯除外,應在此網站上提交)。外掛程式類別的目錄組織是不言自明的,每個目錄都包含一個 src 目錄,其中託管著 Typescript 檔案。然後,這些檔案會自動編譯為 Javascript 並封裝在合適的載入器中。

如果您對貢獻有任何疑問,請隨時在論壇中開啟討論