介紹 ESLint 配置遷移工具

將您的 .eslintrc 檔案遷移到 eslint.config.js 變得更輕鬆了。

我們聽見你們的心聲了:ESLint 使用者尚未升級到 ESLint v9.x 的最大原因之一,是遷移設定檔似乎既困難又複雜。有些外掛程式支援扁平化配置和 ESLint v9.x 規則 API,有些則不支援。有時您需要使用 FlatCompat,有時您需要使用相容性工具。雖然我們在遷移指南中盡可能涵蓋了許多內容,但仔細檢查您的配置並進行必要的更改可能需要時間。

這就是為什麼我們很高興宣布發布 ESLint 配置遷移工具。此工具旨在將 .eslintrc.* 檔案轉換為 eslint.config.js 檔案,包括

  • .eslintrc.eslintrc.json.eslintrc.yml.eslintrc.yaml 檔案的 1 對 1 遷移。
  • 簡單的 .eslintrc.js.eslintrc.cjs.eslintrc.mjs 檔案的合理遷移。(如果您使用變數來建構您的配置,這些檔案通常需要編輯)。
  • 自動將 .eslintignore 模式包含到您的新設定檔中。
  • 必要時自動使用 FlatCompat
  • 必要時自動使用相容性工具。

重要事項: 此版本的工具除了最簡單的 JavaScript 設定檔(.eslintrc.js.eslintrc.cjs.eslintrc.mjs)外,不處理任何其他檔案。它的工作原理是評估檔案,然後遷移計算出的配置。因此,它不會保留檔案內的任何邏輯。我們希望在未來的版本中新增此功能。

使用配置遷移工具

您可以直接從 npm 使用配置遷移工具,而無需透過 npx 或類似指令安裝它。傳遞要轉換的 .eslintrc.* 檔案位置,如下所示

npx @eslint/migrate-config .eslintrc.json
# or
yarn dlx @eslint/migrate-config .eslintrc.json
# or
pnpm dlx @eslint/migrate-config .eslintrc.json
# or
bunx @eslint/migrate-config .eslintrc.json

預設情況下,此命令將輸出 eslint.config.mjs 檔案。如果您想要改為輸出 CommonJS 檔案,請新增 --commonjs 標記

npx @eslint/migrate-config .eslintrc.json --commonjs
# or
yarn dlx @eslint/migrate-config .eslintrc.json --commonjs
# or
pnpm dlx @eslint/migrate-config .eslintrc.json --commonjs
# or
bunx @eslint/migrate-config .eslintrc.json --commonjs

限制

配置遷移工具的目標是降低您首次使用時遇到錯誤的可能性,因此,它積極採用 FlatCompat 和相容性工具。這表示產生的設定檔可能不是最佳的,您或許可以自行簡化它。

產生設定檔後,您應該檢查以下項目

  • 是否有更新版本的外掛程式? 有可能存在更新版本的外掛程式,它們本身完全支援 ESLint v9.x,並且不需要任何相容性工作。最好始終升級到您使用的外掛程式的最新版本。
  • 您在其他目錄中是否有 .eslintrc.* 設定檔? 新的配置系統不會合併來自上層目錄的設定檔。如果您使用 .eslintrc.* 檔案來覆寫特定目錄中的配置,您需要將該配置移至您的主要 eslint.config.* 檔案中。
  • 您是否正在使用 --ext CLI 標記? 如果是,您需要在您的設定檔中 建立一個條目,以符合您用於在命令列上傳遞的檔案副檔名。

產生的設定檔可能無法在不進行修改的情況下運作,但它應該能讓您非常接近目標。

結論

當我們發布 ESLint v9.x 時,我們認為提供配置遷移指南可以幫助大多數使用者完成過渡到新的配置系統。遺憾的是,我們沒有預料到大家在這個過程中會遇到的所有挑戰。我們希望配置遷移工具能讓這個過渡過程在未來變得更容易。由於人們配置 ESLint 的方式多種多樣,因此不可能讓每個設定檔在遷移後 100% 運作,但我們認為這個工具應該可以避免大多數繁瑣的轉換步驟,讓您更快地在 ESLint v9.x 中啟動並執行。

最新的 ESLint 新聞、案例研究、教學和資源。

Evolving flat config with extends
5 分鐘閱讀

使用 extends 進化扁平化配置

您的 eslint.config.js 檔案現在可以使用 extends 來簡化您的配置。

ESLint v9.22.0 released
1 分鐘閱讀

ESLint v9.22.0 已發布

我們剛剛推送了 ESLint v9.22.0,這是 ESLint 的小版本升級。此版本新增了一些新功能,並修復了先前版本中發現的幾個錯誤。

ESLint v9.21.0 released
2 分鐘閱讀

ESLint v9.21.0 已發布

我們剛剛推送了 ESLint v9.21.0,這是 ESLint 的小版本升級。此版本新增了一些新功能,並修復了先前版本中發現的幾個錯誤。