版本

提案新的規則

ESLint 的核心是規則。在專案的大部分時間裡,我們有超過 200 條規則,而且這個列表持續增長。然而,我們不能僅僅接受任何提出的規則,因為所有規則都需要協同工作。因此,我們有一些關於哪些規則可以成為 ESLint 核心的一部分,以及哪些規則最好作為自訂規則和外掛程式的準則。

注意: 自 2020 年起,我們只接受與新的 ECMAScript 功能相關的規則。我們傾向於在新規則在外掛程式中實作。

核心規則準則

一般而言,ESLint 核心規則必須是

  1. 廣泛適用。 我們發布的規則需要對大量的開發人員來說很重要。不支援針對不常見模式的個人偏好。
  2. 通用。 規則不能太過具體,以至於使用者很難理解何時使用它們。如果描述規則的作用需要兩個以上的「and」(如果 a and b and c and d,則此規則會發出警告),則該規則通常太過具體。
  3. 原子性。 規則必須完全獨立運作。規則明確禁止了解其他規則的狀態或存在。
  4. 唯一性。 沒有兩個規則可以產生相同的警告。重疊的規則會使終端使用者感到困惑,並且預期核心 ESLint 規則不會重疊。
  5. 與函式庫無關。 規則必須僅基於 JavaScript 執行環境,而不是基於特定的函式庫或框架。例如,核心規則不應該僅在您使用 jQuery 時才適用,但我們可能有一些規則僅在您使用 Node.js(執行環境)時才適用。
  6. 無衝突。 沒有任何規則必須與另一條規則直接衝突。例如,如果我們有一個規則要求使用分號,我們也不能有一個規則禁止使用分號(這就是為什麼我們有一個規則,semi,可以同時做到這兩件事)。

儘管這些是納入的正式標準,但每個規則都會根據自身情況進行評估。

提案規則

如果您想提出新規則,請參閱如何建立 Pull Request或填寫新規則範本來提交問題。

我們需要所有這些資訊才能判斷該規則是否是一個好的核心規則候選者。

接受規則

為了讓規則被接受到 ESLint 核心中,它必須

  1. 滿足「核心規則準則」部分中列出的所有標準
  2. 有 ESLint 團隊成員支持將該規則納入
  3. 與在過去 12 個月內達到第 4 階段的 ECMAScript 功能相關

請記住,我們有超過 200 條規則,這對於終端使用者和 ESLint 團隊(必須維護它們)來說都是一項艱鉅的任務。因此,任何新規則都必須被認為非常重要才能考慮納入 ESLint 中。

實作是您的責任

ESLint 團隊不會實作使用者建議的新規則,因為我們的人數有限,需要專注於整體路線圖。一旦規則被接受,您有責任實作並記錄該規則。或者,您可以招募其他人來幫助您實作該規則。支持該規則的 ESLint 團隊成員是您的資源,可以幫助您完成其餘流程。

替代方案:建立您自己的規則

請記住,ESLint 是完全可插拔的,這表示您可以建立自己的規則並使用外掛程式來發布它們。我們這樣做是有目的的,因為我們不想成為所有可能規則的把關者。即使我們不將規則納入核心,也不表示您不能擁有您想要的確切規則。請參閱自訂規則建立外掛程式文件以取得更多資訊。

變更語言