ESLint で「TSConfig does not include this file」が解決できない
型情報を使うルールで Parsing error: ... however that TSConfig does not include this file が出るのは、対象ファイルが tsconfig の include 範囲外のため。
projectService に切り替えるか、対象を含む tsconfig を指定する。
公開: 更新:
要約
型情報を使うルール(typed linting)を有効にすると、Parsing error: ESLint was configured to run on <file> ... however that TSConfig does not include this file が出ることがあります。
これは、そのファイルが parserOptions.project で指定した tsconfig の対象範囲に入っていないことが原因です。
最も手軽な解決は、typescript-eslint v8 の projectService に切り替えることです。
よくある原因
- include 範囲外:
tsconfig.jsonのincludeがsrc配下だけで、ルートの設定ファイルやscripts/配下を lint しようとしている。 - project の指す範囲が狭い:
parserOptions.projectに渡した tsconfig が、一部のファイルしかカバーしていない。 - プロジェクト外ファイル:
eslint.config.js自身など、ビルド対象に含めない JS / TS を型付きルールで lint している。 - モノレポ構成: ルートと各パッケージの tsconfig の関係が整理されておらず、対象から漏れるファイルがある。
解決策
1. projectService に切り替える(推奨)
typescript-eslint v8 以降は、tsconfig を自動で解決する projectService が推奨です。
// eslint.config.js
import tseslint from 'typescript-eslint'
export default tseslint.config({
languageOptions: {
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname,
},
},
})Typed Linting のトラブルシューティング(新しいタブで開く) でも、まず projectService を試すことが案内されています。
2. lint 専用の tsconfig を用意する
範囲をきめ細かく制御したいときは、tsconfig.eslint.json を作って対象を広げます。
{
"extends": "./tsconfig.json",
"include": ["src", "scripts", "*.config.ts"]
}parserOptions: {
project: './tsconfig.eslint.json',
}3. 型情報が不要なファイルは外す
設定ファイルなど型付きルールが要らないファイルは、files で範囲を分けて型なし設定を当てます。
export default tseslint.config(
{ files: ['**/*.ts'], extends: [...tseslint.configs.recommendedTypeChecked] },
{ files: ['*.config.js'], extends: [tseslint.configs.disableTypeChecked] },
)対象ファイルだけに型付きルールを当てることで、TSConfig does not include 系のエラーを根本から避けられます。
実行例
実際に上記の手順を node:20 環境で動かすと、parserOptions.project の対象外となった extra.ts で終了コード 1 の Parsing error が発生し、tsconfig.eslint.json で include を拡張することで終了コード 0 へ解消されることを確認できる。
v9.39.5$ npx eslint extra.ts
/tmp/tmp.MGSa1tozbo/extra.ts
0:0 error Parsing error: "parserOptions.project" has been provided for @typescript-eslint/parser.
The file was not found in any of the provided project(s): extra.ts
✖ 1 problem (1 error, 0 warnings)
eslint の終了コード: 1(1 = extra.ts が project に無く Parsing error)$ npx eslint extra.ts
eslint の終了コード: 0(0 = project に含まれ Parsing error 解消)— 2026-08-02 時点の出力