ESlint 重大更新,你知道嗎?
4 月 5 日,ESLint 正式發(fā)布了 v9.0.0,這是 ESLint 的一次重大版本升級(jí)。此版本的更新如下:
- 安裝:可以通過 npm i eslint@9.0.0 --save-dev 命令進(jìn)行更新升級(jí)。
- 遷移指南:由于存在大量更改,可以根據(jù)遷移指南[1]進(jìn)行升級(jí)。
- Node.js 版本支持:目前,Node.js v20.x 是 LTS 版本,因此不再支持 v18.18.0 以及 v19.x 之前的所有 Node.js 版本。
- 默認(rèn)配置格式:Flat config 現(xiàn)在是 ESLint 的默認(rèn)配置格式,eslintrc 已正式棄用。
- 刪除部分格式化程序:包括 checkstyle、compact、jslint-xml、junit、tap、unix、visualstudio,后續(xù)需要通過獨(dú)立安裝包來使用。
- 刪除規(guī)則:刪除了 valid-jsdoc 和 require-jsdoc,建議改用 eslint-plugin-jsdoc插件。
- 更新推薦規(guī)則:eslint:recommended 配置已更新,包括重要的新規(guī)則,并刪除已棄用和不太重要的規(guī)則。
- 新增規(guī)則:新增 no-useless-assignment 規(guī)則,用于捕獲已為變量分配了值但該值從未被使用的情況。
- 全新 API:在主入口點(diǎn)新增函數(shù) loadESLint()。可以使用此函數(shù)來獲取 ESLint 類(以前的 FlatESLint 類)或 LegacyESLint 類(以前的 ESLint 類),從在扁平配置和 eslintrc API 之間進(jìn)行切換。
- 更嚴(yán)格的 RuleTester 驗(yàn)證:包括確保消息無未替換占位符、建議必須改變代碼、測試用例輸出與代碼不同、錯(cuò)誤對(duì)象指定消息或ID、建議對(duì)象需含描述或ID及輸出,以及測試對(duì)象的屬性類型符合預(yù)期,并避免重復(fù)測試。
- 更好的作用域分析:更新了 eslint-scope 的行為,修復(fù)了一些長期存在的問題。
- 更新現(xiàn)有規(guī)則:
complexity 規(guī)則:現(xiàn)在納入了可選鏈和解構(gòu)模式以及參數(shù)中的默認(rèn)值,以提供更全面的代碼復(fù)雜度評(píng)估。
no-fallthrough規(guī)則:新增了reportUnusedFallthroughComment選項(xiàng),以提供更多關(guān)于未使用落體注釋的反饋信息。
no-inner-declarations規(guī)則:的默認(rèn)行為已更新。在v8.x版本中,它曾將塊內(nèi)部定義的函數(shù)視為錯(cuò)誤,但隨著 ES 2015 對(duì)塊作用域函數(shù)聲明的明確定義,現(xiàn)在默認(rèn)不再對(duì)此發(fā)出警告。
no-misleading-character-class規(guī)則:改進(jìn)了問題標(biāo)識(shí),現(xiàn)在將僅高亮顯示正則表達(dá)式中有問題的字符,而不是整個(gè)表達(dá)式。
no-restricted-imports規(guī)則:在路徑處理上進(jìn)行了調(diào)整。在v8.x中,僅最后一個(gè)具有相同name屬性的路徑條目會(huì)生效;而在v9.0.0中,所有條目均有效,并允許為不同的導(dǎo)入名稱指定不同的錯(cuò)誤消息。同時(shí),該規(guī)則還新增了allowImportNames和allowImportNamePattern選項(xiàng),提供更大的靈活性。
no-unused-vars規(guī)則:對(duì)varsIgnorePattern選項(xiàng)的使用范圍進(jìn)行了調(diào)整,不再適用于捕獲的錯(cuò)誤變量。同時(shí),caughtErrors選項(xiàng)的默認(rèn)值從"none"更改為"all",以更好地處理未使用的變量情況。此外,還新增了ignoreClassWithStaticInitBlock選項(xiàng),以忽略具有靜態(tài)初始化塊的類中的未使用變量。
no-useless-computed-key規(guī)則:將enforceForClassMembers選項(xiàng)的默認(rèn)值從false更改為true,旨在減少重構(gòu)過程中可能產(chǎn)生的誤導(dǎo)性注釋。當(dāng)此選項(xiàng)設(shè)置為true時(shí),規(guī)則將禁止在不會(huì)發(fā)生穿透的情況下使用穿透注釋。
- 引入配置檢查器: 一個(gè)可視化工具,幫助理解和檢查 ESLint 配置文件。
圖片
- 其他更新:
38 個(gè)重大更新;
21 個(gè)新增功能;
14 個(gè) Bug 修復(fù);
80 處文檔更新;
11 個(gè)構(gòu)建更新;
62 個(gè)其他更新;
ESLint v9.0.0 更新詳情:https://eslint.org/blog/2024/04/eslint-v9.0.0-released/
[1]遷移指南: https://eslint.org/docs/latest/use/migrate-to-9.0.0

































