LoginSignup
0
1

VSCodeのソース上ではESLintのエラーが表示されない時の対処

Last updated at Posted at 2024-05-19

Flat Configの場合の話です
eslint.experimental.useFlatConfigをtrueにすると解消されました!

1. 背景

ターミナルでnpx eslint ファイルパスをする場合はeslintの設定ファイルに従ってエラーが検知されます。
しかし、VSCodeでソースファイルを開くとESLintでエラーが表示されません。

VSCodeで以下のESLintプラグインをインストールし、有効にしています。

eslintの設定ファイルもルート直下に置いています。

eslint.config.js
import typescriptEslintParser from "@typescript-eslint/parser";
import js from "@eslint/js";
import tseslint from 'typescript-eslint';

export default [
    {languageOptions: {
        parser: typescriptEslintParser,
        parserOptions: {
          project: true,
          sourceType: "module",
        },
      }
    },
    js.configs.recommended,
    ...tseslint.configs.recommended,
   {
       rules: {
           "no-unused-vars": "warn",
           "no-undef": "warn",
           "@typescript-eslint/prefer-includes": "error"
       }
   }
];

VSCodeの再起動、VSCodeのESLintの拡張機能の再起動もしても変わらずでした。

2. 解決策

こちらで紹介されていました!

.vscode/settings.json
{
	"eslint.experimental.useFlatConfig": true
}

この方法か歯車マークの「Settings」を押して、チェックを入れて下さい。

image.png

これで以下のようにエディタでエラーが表示されます。

image.png

3. 上の解決策を知るまでに対応した一時的な対応

commonjsの記法にして、ファイル名を.eslintrc.mjsにする方法です。

image.png

ESLintでエラーが表示されるはずのファイルを開きます。

「OUTPUT」を開き、「Tasks」のプルダウンで、「ESLint」を選択します。

image.png

すると以下のエラーが表示されています。

image.png

.eslintrc.mjsにしても読み込まれませんでした。

image.png

.eslintrc.cjsにすると読み込まれました。

image.png

CommonJSの記法に書き換えます。

.eslintrc.cjs
module.exports = {
  parser: "@typescript-eslint/parser",
  parserOptions: {
    project: "./tsconfig.json",
    sourceType: "module",
  },
  extends: [
    'eslint:recommended',
    'plugin:@typescript-eslint/recommended'
  ],
  plugins: [
    '@typescript-eslint',
  ],
  rules: {
    "no-unused-vars": "warn",
    "no-undef": "warn",
    "@typescript-eslint/prefer-includes": "error"
  }
};

image.png

これで読み込まれました。

該当のファイルを見てみると、ESLintのエラーが表示されています。

image.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1