網站 |配置 ESLint |規則|為 ESLint 做出貢獻 |報告錯誤 |行為準則 |推特 |不和諧|乳齒象
ESLint 是一種用於識別和報告 ECMAScript/JavaScript 程式碼中發現的模式的工具。在許多方面,它與 JSLint 和 JSHint 類似,但有一些例外:
先決條件:使用 SSL 支援建構的 Node.js( ^18.18.0
、 ^20.9.0
或>=21.1.0
)。 (如果您使用官方 Node.js 發行版,則始終內建 SSL。)
您可以使用以下命令安裝和設定 ESLint:
npm init @eslint/config@latest
之後,您可以在任何檔案或目錄上執行 ESLint,如下所示:
npx eslint yourfile.js
您可以在eslint.config.js
檔案中設定規則,如下例所示:
export default [
{
files : [ "**/*.js" , "**/*.cjs" , "**/*.mjs" ] ,
rules : {
"prefer-const" : "warn" ,
"no-constant-binary-expression" : "error"
}
}
] ;
名稱"prefer-const"
和"no-constant-binary-expression"
是 ESLint 中規則的名稱。第一個值是規則的錯誤級別,可以是以下值之一:
"off"
或0
- 關閉規則"warn"
或1
- 開啟規則作為警告(不影響退出代碼)"error"
或2
- 將規則作為錯誤開啟(退出代碼將為 1)三個錯誤等級可讓您對 ESLint 如何應用規則進行細粒度控制(有關更多配置選項和詳細信息,請參閱配置文件)。
ESLint 團隊為目前版本提供持續支持,並為先前版本提供六個月的有限支援。有限支援僅包括關鍵錯誤修復、安全性問題和相容性問題。
ESLint 透過我們的合作夥伴 Tidelift 和 HeroDevs 為目前和以前的版本提供商業支援。
有關更多詳細信息,請參閱版本支援。
ESLint 遵守 OpenJS 基金會行為準則。
在提交問題之前,請務必閱讀您所報告內容的指南:
是的,ESLint 原生支援解析 JSX 語法(必須在設定中啟用)。請注意,支援 JSX 語法與支援 React不同。 React 將特定語意應用於 ESLint 無法辨識的 JSX 語法。如果您使用 React 並且想要 React 語義,我們建議使用 eslint-plugin-react。
不,ESLint 和 Prettier 有不同的工作:ESLint 是一個 linter(尋找有問題的模式),而 Prettier 是一個代碼格式化程式。這兩種工具的使用都很常見,請參閱 Prettier 的文檔以了解如何配置它們以使其相互相容。
ESLint 完全支援 ECMAScript 3、5,並且從 2015 年開始一直支援到最新的第 4 階段規格(預設)。您可以透過設定設定所需的 ECMAScript 語法和其他設定(如全域變數)。
ESLint 的解析器僅正式支援最新的最終 ECMAScript 標準。我們將對核心規則進行更改,以避免第 3 階段 ECMAScript 語法提案崩潰(只要它們使用正確的實驗性 ESTree 語法實現)。我們可能會根據具體情況對核心規則進行更改,以便更好地使用語言擴充(例如 JSX、Flow 和 TypeScript)。
在其他情況下(包括由於新語法規則需要對更多或更少的情況發出警告,而不僅僅是不崩潰),我們建議您使用其他解析器和/或規則外掛程式。如果您使用 Babel,則可以使用 @babel/eslint-parser 和 @babel/eslint-plugin 來使用 Babel 中可用的任何選項。
一旦語言功能被採用到 ECMAScript 標準(根據 TC39 流程的第 4 階段),我們將根據我們的貢獻指南接受與新功能相關的問題和拉取請求。在此之前,請為您的實驗功能使用適當的解析器和插件。
ESLint 隨著 ESLint 的每個主要版本更新支援的 Node.js 版本。屆時,ESLint 支援的 Node.js 版本更新為:
ESLint 預計也可以與 Node.js Current 版本之後發布的 Node.js 版本一起使用。
請參閱快速入門指南,以了解給定 ESLint 版本的官方支援的 Node.js 版本。
展開討論或造訪我們的 Discord 伺服器。
像package-lock.json
這樣的鎖定檔案對於已部署的應用程式很有幫助。它們確保環境之間和部署之間的依賴關係保持一致。
發佈到 npm 註冊表的eslint
等軟體包不包含鎖定檔。 npm install eslint
作為使用者將遵守 ESLint 的package.json
中的版本約束。 ESLint 及其相依性將包含在使用者的鎖定檔案(如果存在)中,但不會使用 ESLint 自己的鎖定檔案。
我們有意不鎖定依賴項版本,以便我們在開發和 CI 中擁有使用者在專案中安裝 ESLint 時獲得的最新相容依賴項版本。
Twilio 部落格有更深入的了解,可以了解更多資訊。
我們計劃每兩週在周五或週六發布一次。您可以關注發布問題以獲取有關任何特定發布的計劃的更新。
ESLint 非常重視安全性。我們努力確保 ESLint 對每個人來說都是安全的,並確保安全問題得到快速、負責任的解決。閱讀完整的安全策略。
ESLint 遵循語意版本控制。然而,由於 ESLint 作為程式碼品質工具的性質,並不總是清楚何時發生次要或主要版本衝突。為了幫助大家澄清這一點,我們為 ESLint 定義了以下語意版本控制策略:
eslint:recommended
已更新,將導致嚴格減少 linting 錯誤(例如,規則刪除)。eslint:recommended
已更新,可能會導致新的 linting 錯誤(例如,規則新增、大多數規則選項更新)。根據我們的政策,任何次要更新都可能報告比之前版本更多的 linting 錯誤(例如:來自錯誤修復)。因此,我們建議在package.json
中使用波形符號 ( ~
),例如"eslint": "~3.1.0"
以確保建構的結果。
根據我們如何評估新規則和規則變更的政策,風格規則被凍結。這意味著:
這些人使計畫得以順利進行,並且是提供幫助的資源。
管理版本、審查功能請求並定期開會以確保 ESLint 得到正確維護的人員。