ESLint: 8.0.0 Не удалось загрузить плагин '@typescript-eslint'
Описание проблемы
Здравствуйте! Мне нужна помощь. Я получаю следующую ошибку при попытке собрать проект:
Oops! Something went wrong! 😦
Версия ESLint: 8.0.0
Ошибка:
TypeError: Failed to load plugin '@typescript-eslint' declared in 'src.eslintrc': Class extends value undefined is not a constructor or null
Referenced from: src.eslintrc
Вот содержимое моего package.json
:
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^4.33.0",
"@typescript-eslint/parser": "^4.33.0",
"browserslist": "^4.17.3",
"eslint": "^8.0.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-import": "^2.24.2",
"eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-react": "^7.26.1",
"prettier": "^2.3.2"
}
А вот как выглядит мой .eslintrc
:
"parser": "@typescript-eslint/parser",
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:react/recommended",
"plugin:@typescript-eslint/recommended",
"plugin:prettier/recommended",
"prettier"
],
"plugins": ["@typescript-eslint"]
Проблема, похоже, связана с загрузкой плагина @typescript-eslint
. Не могли бы вы помочь мне разобраться в чем дело?
5 ответ(ов)
Я сделал это, и у меня всё заработало без проблем.
Попробуйте обновить три пакета до следующих версий в вашем package.json
:
"@typescript-eslint/eslint-plugin": "^5.0.0",
"@typescript-eslint/parser": "^5.0.0",
"eslint": "^8.1.0",
Затем выполните в корне вашего проекта следующую команду для обновления пакетов:
npm i
После этого всё должно работать отлично.
Судя по всему, проблема совместимости ESM заключается в одном из пакетов. Вам необходимо убедиться, что все ваши зависимости совместимы с ESM, или зафиксировать версию eslint на 7.32.0 и обновить плагины (также рекомендую добавить typescript в ваши dev-зависимости):
"devDependencies": {
...
"@typescript-eslint/eslint-plugin": "^5.6.0",
"@typescript-eslint/parser": "^5.6.0",
"eslint": "^7.32.0",
"typescript": "^4.4.3"
}
Для этого вы можете выполнить команду:
npm i --save-dev typescript @typescript-eslint/eslint-plugin@^5.6.0 @typescript-eslint/parser@^5.6.0 eslint@^7.32.0
Флаг --save-dev
используется для установки этих пакетов как dev-зависимостей, так как они не нужны, кроме как в процессе разработки и сборки.
Вы столкнулись с ошибкой при использовании версии 4.x.x пакетов @typescript-eslint
. Пример вашего package.json
файла:
"devDependencies": {
...
"@typescript-eslint/eslint-plugin": "^4.29.1",
"@typescript-eslint/parser": "^4.29.1",
...
}
Решение проблемы заключалось в обновлении этих пакетов до версии "^5.3.1"
. Попробуйте изменить ваши зависимости следующим образом:
"devDependencies": {
...
"@typescript-eslint/eslint-plugin": "^5.3.1",
"@typescript-eslint/parser": "^5.3.1",
...
}
Затем выполните команду установки зависимостей, чтобы обновить пакеты. Это должно решить вашу проблему.
Для меня обновление версии Node с 12.12.0 до 16.0.0 решило проблему. Похоже, это связано с устаревшей версией Node.
Я обновил версию Node.js до 16, и теперь все работает нормально.
Отключение правила ESLint для конкретной строки
Возможно ли расширять типы в TypeScript?
Когда использовать JSX.Element, ReactNode и ReactElement?
Переопределение типа свойства интерфейса, определённого в файле d.ts TypeScript
Как проверить, содержит ли массив строку в TypeScript?