Motomichi Works Blog

モトミチワークスブログです。その日学習したことについて書いている日記みたいなものです。

VSCodeのworkspaceごとにeslint対象ディレクトリを設定する

解決したかった問題

リポジトリのrootディレクトリをVSCodeワークスペースとして開きたいけど、VSCodeのデフォルト設定ではワークスペースを基点としてimportパスをlintしてしまうので、ずっと以下のようなeslintエラーが出てしまっていました。

Missing file extension for "@/src/components/GlobalFooter "eslintimport/extensions
Unable to resolve path to module '@/src/components/GlobalFooter '.eslintimport/no-unresolved

ちなみにeslintのエラーが出ていますが、import自体はできていてアプリケーションは動いている状態です。

eslint.workingDirectoriesを設定して解決する

VSCodeのsettings.jsoneslint.workingDirectories の項目を設定することで解決できました。

{
  〜略〜
  "eslint.workingDirectories": [{ "pattern": "./frontend" }],
  〜略〜
}

.vscode/settings.json をプロジェクトごとに作成している場合はそっちに書くと良いと思います。

以下のようにglobパターンも使えます。

{
  〜略〜
  "eslint.workingDirectories": [{ "pattern": "./frontend/*/" }],
  〜略〜
}