Categories
程式開發

ESLint v7.0.0 發布:不再支持 Node.js v8


近日,ESLint v7.0.0 作為 ESLint 的主要升級版本正式發布。此次更新除了修復已知bug 和增強特性外,還增加了一些新特性以及 bugfix。官方更新文檔中提及,由於Node.js 8 已於2019年12月達到EOL,ESLint v7.0.0 將放棄對 Node.js v8 的支持。

ESLint 是一個用來識別 ECMAScript/JavaScript 代碼並且按照規則給出報告的代碼檢測工具。代碼檢測是一種靜態的分析,用於尋找代碼中的錯誤,而且並不依賴於某樣具體的編碼風格,很多編程語言的代碼檢測工具都集成在編譯程序中,但JavaScript 由於易出錯且沒有編譯程序,所以ESLint 是一個不可或缺的工具。

近日,ESLint 官網正式發布了ESLint v7.0.0,在版本更新的聲明中,ESLint 重點強調了ESLint v7.0.0 不再支持Node.js v8 這件事,此外還表示此版本中進行了一些重大更改,並附上了一份遷移指南:

https://eslint.org/docs/user-guide/migrating-to-7.0.0

此次ESLint v7.0.0的重大更新包括:

核心規則變更

  • 棄用了核心中的Node.js / CommonJS 十條規則,並移至eslint-plugin-node插件。
  • 更新一些規則,用來識別 bigint 文本,同時在默認情況下對更多情況發出警告。
  • eslint:recommended 更新了一些新的規則:no-dupe-else-if,no-import-assign,和no-setter-return。

優化開發者體驗

  • 默認的忽略模式(IgnorePatterns)已經更新。在默認情況下,ESLint 將不再忽略 .eslintrc.js 和 bower_components/*。此外,現在的默認情況下,它將忽略嵌套的 node_modules 目錄。
  • 如果在overrides [].files中顯式定義了擴展名不是.js的文件,ESLint現在將對它們進行整理,不再需使用–ext進行標記。
  • ESLint 將支持指令註釋中的描述,因此可以清楚地記錄禁用註釋等內容。
  • 將附加驗證添加到 RuleTester 類中,以改善對插件中自定義規則的測試。
  • ESLint 現在將解析與條目配置文件相關的插件,意味著位於項目外部的共享配置文件現在可以與所需的插件並置在一起。
  • 從ESLint v7 開始,分別使用–config path/to/a-config 和–ignore-path path/to/a-ignore CLI 標誌傳遞給ESLint的配置文件和忽略文件,同時也將從當前工作目錄中解析, 而不是文件位置。帶來的好處就是開發者可以使用共享插件,不必再在其項目中安裝了。

新的 ESLint 類

在此次更新中,CLIEngine 類提供了一個同步的API,該API阻礙了一些功能的實現,比如並行lint、在可共享的configs/parsers/plugins/formatter 中支持ES 模塊以及增加了可視化顯示lint 運行進度的功能。新的 ESLint 類提供了一個異步 API。目前來說,CLIEngine 將繼續保持核心地位,但將來的版本中可能會被移除。

新特性

  • f9774ec New: 新增 default-case-last 規則(修復#12665)(#12668)(Milos Djermanovic)
  • a1d999c New: 新增 no-useless-backreference 規則(修復#12673)(#12690)(Milos Djermanovic)
  • 985dac3 New: 新增 no-restricted-exports 規則(修復#10428)(#12546)(Milos Djermanovic)

延伸閱讀

https://eslint.org/blog/2020/05/eslint-v7.0.0-released