🩹

【2025-08-09】ESLintとStylisticのバージョン更新によるリントエラーの発生

に公開

前提として、私のプロジェクトの技術スタックは以下のとおり。

  • 言語
    • TypeScript( 5.9.2
  • ライブラリ
    • React( v19.1.0
  • フレームワーク
    • Next.js( v15.3.4
  • リンター
    • ESLint( v9.32.0
    • eslint-config-next( v15.4.6
  • フォーマッター
    • Stylistic(@stylistic/eslint-plugin)( v5.2.2

発生していた問題

Dependabot が自動生成した依存関係更新 PR にて CI が落ちていた。
エラーの内容は以下。

Maximum call stack size exceeded
Occurred while linting /home/runner/work/xxx/xxx.xx:1
Rule: "@stylistic/indent"
Error: Process completed with exit code 1.

元々インデントのエラーなどなく CI をパスしていたコードのはずだが、何故か @stylistic/indent のルールでエラーが発生するようになっていた。

解決方法

Upgrade to TypeScript 5.9 breaks rules when linting TSX files · Issue #915 · eslint-stylistic/eslint-stylistic

↑ Stylistic 自体のバグ( Stylistic がまだ TypeScript の 5.9 系をサポートできていない)のようなので、取り急ぎ Stylistic(@stylistic/eslint-plugin) のバージョンをダウングレードすることで事なきを得た。当面は Stylistic だけバージョンアップできないかもしれない。

修正前

package.json
    "@stylistic/eslint-plugin": "^5.2.2",

修正後

package.json
    "@stylistic/eslint-plugin": "^5.1.0",

2025年 9月7日(日) 追記:
TypeScript のバージョンを 5.9 より以前のもので固定するのも暫定対応として有効です。
なお、 5.9 以前のバージョンを指定しているつもりでもバージョン指定に ^ (キャレット)を付けていると 5 系の範囲内で一番最新バージョンの TypeScript がインストールされてしまうので注意してください。

修正前

package.json
    "typescript": "^5.8.3",

修正後

package.json
    "typescript": "5.8.3",

Discussion