Parsing Error: Cannot read file 'tsconfig.json'
03.01.2024
Чтобы решить ошибку "Parsing Error: Cannot read file 'tsconfig.json'", обновите ваш файл .eslintrc.js, установив опцию tsconfigRootDir равной __dirname, чтобы принудить ESLint разрешать конфигурацию проекта относительно папки, в которой находится файл .eslintrc.js.
Откройте ваш файл .eslintrc.js и добавьте или обновите объект parserOptions следующим образом:
module.exports = {
parserOptions: {
project: 'tsconfig.json',
tsconfigRootDir: __dirname,
sourceType: 'module',
},
// ... остальные настройки
};
Устанавливая объект parserOptions, мы указываем ESLint, какие опции языка JavaScript мы хотим поддерживать.
Опция sourceType установлена как module, чтобы указать, что мы хотим поддерживать модули ES6.
Опция tsconfigRootDir установлена как __dirname, чтобы ESLint разрешал конфигурацию проекта относительно файла .eslintrc.js.
После обновления объекта parserOptions у вас может возникнуть ошибка.
// ⛔️ Parsing error: "parserOptions.project" has been set for @typescript-eslint/parser.
// The file does not match your project config: .eslintrc.js.
// The file must be included in at least one of the projects provided.eslint
Если у вас возникла ошибка "parserOptions.project" has been set for @typescript-eslint/parser, создайте файл tsconfig.eslint.json в корневой директории рядом с вашим файлом tsconfig.json.
{
"extends": "./tsconfig.json",
"include": [
// 👇️ добавьте все директории и файлы
// которые вы хотите линтить здесь
"src",
"tests",
// добавьте все файлы, в которых вы видите
// ошибку "parserOptions.project"
".eslintrc.js"
]
}
Убедитесь, что вы добавили все директории, которые вы хотите линтить, в массив include.
Теперь откройте ваш файл .eslintrc.js и обновите свойство project, чтобы указать на специальный для ESLint tsconfig файл.
module.exports = {
parserOptions: {
project: 'tsconfig.eslint.json',
tsconfigRootDir: __dirname,
sourceType: 'module',
},
// ... остальные настройки
};
Ваша ошибка должна быть устранена. Если нет, попробуйте перезапустить вашу среду разработки.
Это необходимо, потому что добавление опции parserOptions.project в проект TypeScript вызывает ошибку ESLint, если мы пытаемся линтить файлы, которые не включены в наш проект TypeScript.
Чтобы обойти это, мы должны указать все файлы, которые мы хотим линтить, в массиве include файла tsconfig.eslint.json.
Короче говоря, добавьте все файлы, которые вы хотите линтить, но которые не включены в ваш tsconfig.json, в массив include файла tsconfig.eslint.json.
Скорее всего, это будут конфигурационные файлы, расположенные в вашей корневой директории.
В качестве альтернативы, вы можете добавить любые файлы, в которых вы видите ошибку, в ваш файл .eslintignore, если вы не хотите линтить их. Исправление ошибки в Visual Studio Code
Если ошибка остается и вы используете среду разработки VSCode, создайте папку .vscode в корневой директории вашего проекта.
Добавьте файл settings.json в папку .vscode и вставьте туда следующее содержимое.
{
"eslint.workingDirectories": [
"src"
]
}
Этот файл предполагает, что вы хотите линтить директорию src.
Если у вашего проекта 2 директории, которые вы хотите линтить, например, frontend и backend, обновите массив workingDirectories следующим образом:
{
"eslint.workingDirectories": [
"frontend
...
