版本

提議新規則

ESLint 完全是關於規則。在專案的大部分生命週期中,我們已經有超過 200 條規則,而且這個列表還在持續增長。但是,我們不能只是接受任何提議的規則,因為所有規則都需要協同工作。因此,我們有一些關於哪些規則可以成為 ESLint 核心的一部分,以及哪些規則最好作為自訂規則和外掛程式的指南。

注意: 截至 2020 年,我們僅接受與新的 ECMAScript 功能相關的規則。我們更希望在新規則中實作外掛程式。

核心規則指南

一般來說,ESLint 核心規則必須是

  1. 廣泛適用。 我們發布的規則需要對大量開發人員很重要。不支援對不常見模式的個人偏好。
  2. 通用。 規則不能太過具體,以至於使用者難以理解何時使用它們。如果描述規則的作用需要超過兩個「和」(如果 a 和 b 和 c 和 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 是完全可插拔的,這表示您可以建立自己的規則並使用外掛程式發布它們。我們這樣做是有目的的,因為我們不想成為所有可能規則的守門人。即使我們不接受核心規則,那也不代表您不能擁有您想要的確切規則。請參閱自訂規則建立外掛程式文件以取得更多資訊。

變更語言