Skip to content

ESLint TypeError: this.libOptions.parse is not a function - 対処法

問題の概要

Next.jsプロジェクトでESLintを実行した際に、以下のエラーが発生する場合があります:

TypeError: this.libOptions.parse is not a function

このエラーは主にJetBrains WebStorm 2022.2.1などのIDEで発生し、ESLintバージョン8.23.0との互換性問題が原因です。

発生条件

  • WebStorm 2022.2.1(ビルド #WS-222.3739.57)
  • ESLint 8.23.0
  • Node.js v16.15.1
  • Next.jsプロジェクト(TypeScript有効)

原因

この問題は、ESLint 8.23.0で導入された変更(GitHubコミット)とJetBrains製品のESLintプラグインとの互換性の問題によって発生します。

注意

この問題はJetBrains公式で追跡されています(WEB-57089)。

解決方法

方法1: ESLintのバージョンダウングレード(一時的な解決策)

最も簡単な解決法は、ESLintを8.22.0にダウングレードすることです:

bash
# npmを使用する場合
npm install eslint@8.22.0 --save-exact

# yarnを使用する場合
yarn add eslint@8.22.0 --save-exact

インストール後、node_modulesとロックファイルをクリーンアップします:

bash
rm -rf node_modules
rm package-lock.json  # または yarn.lock
npm install           # または yarn install

方法2: WebStormの設定変更

WebStormのESLint設定を変更することで解決することもあります:

  1. 設定を開くAlt + Shift + S
  2. 「eslint」で検索
  3. 「Automatic ESLint configuration」を選択
  4. パターンを以下のように変更:
**/*.(js|ts|jsx|tsx|html|vue)

方法3: WebStormのアップデート

この問題はWebStorm 2022.2.3で修正されています。IDEを最新バージョンにアップデートしてください:

  1. HelpCheck for Updatesを選択
  2. 利用可能なアップデートをインストール

推奨される解決策

ベストプラクティス

長期的にはWebStormのアップデート(方法3) を推奨します。これにより、将来の互換性問題も防止できます。

一時的な解決が必要な場合は、ESLintのバージョンダウングレード(方法1) が効果的です。

予防策

  1. IDEと開発ツールを定期的に更新する
  2. パッケージのバージョン変更前には互換性を確認する
  3. プロジェクトごとにESLintバージョンを固定する(--save-exactフラグの使用)

まとめ

this.libOptions.parse is not a functionエラーは、ESLint 8.23.0とJetBrains製品の互換性問題によるものです。一時的にはESLintのダウングレードで対応可能ですが、根本的にはIDEのアップデートが最良の解決策です。

プロジェクトの安定性を保つためには、ツールのバージョン管理と定期的なアップデートを心がけましょう。