規則政策變更

我們最近對規則政策進行了一些變更,很高興與您分享。

ESLint 最初創建時,想法是擁有一小組 20-30 個核心規則,讓大家可以開始使用,然後讓社群建立自己的規則來填補任何剩餘的缺口。 然而,我們確實持續實作核心規則,因為這似乎很有幫助,以至於今天已經有 280 個核心規則。 在任何特定時間,超過一半的未解決問題和 pull request 都與規則相關,這些規則佔用了團隊的大部分時間。

ESLint 現在受益於蓬勃發展的規則導向外掛生態系統,例如 eslint-plugin-nodeeslint-plugin-importeslint-plugin-react 和許多其他外掛。 像 astexplorer.net 這樣的工具和眾多教學課程,讓開發人員比以往任何時候都更容易編寫自己的規則。 核心團隊不再需要建立大量基本規則,因此我們可以將時間優先用於期待已久的核心功能,例如平行檢查,這將使整個社群受益。 我們正在改變處理內建規則變更的優先順序,但一如既往,如果某個規則不太適合您的情況,我們鼓勵您將其修改為您自己專案的自訂規則,並與社群的其他成員分享。

變更內容為何?

展望未來,我們將對處理規則問題和 pull request 的方式進行以下變更

  • 新規則受到限制 - 我們只會接受與過去 12 個月內達到 stage 4 的新 ECMAScript 功能相關的新規則。 社群仰賴 ESLint 來協助他們學習正確使用新語言功能的方式,我們希望繼續這樣做。 我們不會接受與新 ECMAScript 功能無關的建議或偏好設定的新規則。
  • 不新增僅禁止語法的新規則 - 我們已經有 no-restricted-syntax,它應該適用於大多數情況。 否則,人們可以建立自己的規則。 我們確實有一些僅禁止語法的舊版規則(例如 no-undefined),我們會保留這些規則,但不會新增更多規則。
  • 風格規則已凍結 - 我們不會在風格規則中新增更多選項。 我們了解到,沒有辦法滿足每個人的個人偏好,而且大多數規則已經有很多難以理解的選項。 風格規則是與間距、慣例以及通常任何不會突顯錯誤或更好的做事方式相關的規則。 2021-01-29 更新:我們在 README 中澄清,我們仍將支援新加入的 ECMAScript 功能。
  • 新規則選項必須由社群成員實作 - 人們仍然可以為現有的核心非風格規則提出新選項,我們仍將像往常一樣評估它們。 但是,這些核准的選項將需要由社群實作,並且不會成為核心團隊開發藍圖的一部分。

那錯誤呢?

我們仍將評估所有核心規則(包括風格規則)中的錯誤。 如果可以驗證錯誤,我們仍將在正常維護工作中修復它。

感謝您的諒解

我們知道這是 ESLint 運作方式的變更,我們感謝您的諒解。 ESLint 由一位兼職開發人員和一個志工團隊維護,因此我們的資源有限。 我們正在進行這些變更,以便更充分利用我們可用的時間來維護專案。 如果您想幫助我們,請考慮貢獻專案或 贊助

最新的 ESLint 新聞、案例研究、教學和資源。

Evolving flat config with extends
5 分鐘閱讀

使用 extends 演進扁平化配置

您的 eslint.config.js 檔案現在可以使用 extends 來簡化您的配置。

ESLint v9.22.0 released
1 分鐘閱讀

ESLint v9.22.0 已發布

我們剛剛發布了 ESLint v9.22.0,這是 ESLint 的次要版本升級。 此版本新增了一些新功能,並修正了先前版本中發現的幾個錯誤。

ESLint v9.21.0 released
2 分鐘閱讀

ESLint v9.21.0 已發布

我們剛剛發布了 ESLint v9.21.0,這是 ESLint 的次要版本升級。 此版本新增了一些新功能,並修正了先前版本中發現的幾個錯誤。