
ESLint 最初創建時,想法是擁有一小組 20-30 個核心規則,讓大家可以開始使用,然後讓社群建立自己的規則來填補任何剩餘的缺口。 然而,我們確實持續實作核心規則,因為這似乎很有幫助,以至於今天已經有 280 個核心規則。 在任何特定時間,超過一半的未解決問題和 pull request 都與規則相關,這些規則佔用了團隊的大部分時間。
ESLint 現在受益於蓬勃發展的規則導向外掛生態系統,例如 eslint-plugin-node
、eslint-plugin-import
、eslint-plugin-react
和許多其他外掛。 像 astexplorer.net 這樣的工具和眾多教學課程,讓開發人員比以往任何時候都更容易編寫自己的規則。 核心團隊不再需要建立大量基本規則,因此我們可以將時間優先用於期待已久的核心功能,例如平行檢查,這將使整個社群受益。 我們正在改變處理內建規則變更的優先順序,但一如既往,如果某個規則不太適合您的情況,我們鼓勵您將其修改為您自己專案的自訂規則,並與社群的其他成員分享。
變更內容為何?
展望未來,我們將對處理規則問題和 pull request 的方式進行以下變更
- 新規則受到限制 - 我們只會接受與過去 12 個月內達到 stage 4 的新 ECMAScript 功能相關的新規則。 社群仰賴 ESLint 來協助他們學習正確使用新語言功能的方式,我們希望繼續這樣做。 我們不會接受與新 ECMAScript 功能無關的建議或偏好設定的新規則。
- 不新增僅禁止語法的新規則 - 我們已經有
no-restricted-syntax
,它應該適用於大多數情況。 否則,人們可以建立自己的規則。 我們確實有一些僅禁止語法的舊版規則(例如no-undefined
),我們會保留這些規則,但不會新增更多規則。 - 風格規則已凍結 - 我們不會在風格規則中新增更多選項。 我們了解到,沒有辦法滿足每個人的個人偏好,而且大多數規則已經有很多難以理解的選項。 風格規則是與間距、慣例以及通常任何不會突顯錯誤或更好的做事方式相關的規則。 2021-01-29 更新:我們在 README 中澄清,我們仍將支援新加入的 ECMAScript 功能。
- 新規則選項必須由社群成員實作 - 人們仍然可以為現有的核心非風格規則提出新選項,我們仍將像往常一樣評估它們。 但是,這些核准的選項將需要由社群實作,並且不會成為核心團隊開發藍圖的一部分。
那錯誤呢?
我們仍將評估所有核心規則(包括風格規則)中的錯誤。 如果可以驗證錯誤,我們仍將在正常維護工作中修復它。
感謝您的諒解
我們知道這是 ESLint 運作方式的變更,我們感謝您的諒解。 ESLint 由一位兼職開發人員和一個志工團隊維護,因此我們的資源有限。 我們正在進行這些變更,以便更充分利用我們可用的時間來維護專案。 如果您想幫助我們,請考慮貢獻專案或 贊助。