我在VS Code中使用ESLint的所有TypeScript文件上得到以下两个错误:
Definition for rule 'import/extensions' was not found.eslint(import/extensions)
Definition for rule 'import/no-extraneous-dependencies' was not found.eslint(import/no-extraneous-dependencies)
VSC问题窗格中的屏幕截图:
可能重复的注意事项
关于不同的模块,甚至一些关于import/extensions
,有许多类似的问题,但建议的解决方案都没有帮助。我都试过了。我还尝试了Stack Overflow在输入这个问题时建议的每个线程中发布的每个解决方案。
下面是我的.eslintrc.json
:
{
"env": {
"es2021": true,
"node": true
},
"extends": [
"airbnb-typescript/base",
"plugin:@typescript-eslint/recommended"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 12,
"sourceType": "module",
"project": "./tsconfig.json"
},
"plugins": [
"@typescript-eslint"
],
"rules": {
"@typescript-eslint/no-use-before-define": "off"
}
}
package.json
:
{
"name": "graph-userdata-gateway",
"version": "1.0.0",
"description": "Gateway for PowerApps Microsoft Graph API custom connector to query user data with application permissions.",
"main": "src/index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git@gitlab.yobitti.fi:powerapps/graph-userdata-gateway.git"
},
"author": "Benjamin Pettinen / YO-bitti Oy",
"license": "UNLICENSED",
"dependencies": {
"@microsoft/microsoft-graph-client": "^3.0.0",
"dedent": "^0.7.0",
"express": "^4.17.1",
"isomorphic-fetch": "^3.0.0",
"md5": "^2.3.0",
"node-fetch": "^2.6.1"
},
"devDependencies": {
"@types/dedent": "^0.7.0",
"@types/express": "^4.17.13",
"@types/isomorphic-fetch": "0.0.35",
"@types/md5": "^2.3.1",
"@types/node-fetch": "^2.5.12",
"@typescript-eslint/eslint-plugin": "^4.29.2",
"@typescript-eslint/parser": "^4.29.2",
"eslint": "^7.32.0",
"eslint-config-airbnb-base": "^14.2.1",
"eslint-config-airbnb-typescript": "^13.0.0",
"eslint-plugin-import": "^2.24.1",
"typescript": "^4.3.5"
}
}
tsconfig.json
{
"compilerOptions": {
"target": "ES6",
"module": "CommonJS",
"esModuleInterop": true,
"noImplicitAny": true,
"moduleResolution": "Node",
"outDir": "dist",
"sourceMap": true
}
}
我试过删除整个node_mobules
并重新运行npm install
,以及在.eslintrc.json
中使用extends
。如果我删除airbnb-typescript/base
,错误消失,但我失去了ESLint的Airbnb风格。使用airbnb-base
也可以,但是ESLint会抱怨Missing file extension for abc.ts
和Unable to resolve path to module abc
。我还多次重新启动VSC和ESLint服务器。
5条答案
按热度按时间x7yiwoj41#
您错过了在
eslint.json
文件中添加此内容。或者
参考:https://github.com/import-js/eslint-plugin-import#resolvers
brvekthn2#
对于那些在Typescript Airbnb配置升级到v13+后来到这里并希望了解变化的人:
仔细阅读
eslint-config-airbnb-typescript
项目的最新自述。确保您拥有常规的Airbnb配置设置。请参阅
eslint-config-airbnb
,如果您没有使用React,请参阅eslint-config-airbnb-base
。听起来像是新的东西为您的旧设置,它确实是。那是因为有一个breaking change in v13
让我们按照这个建议去做。
根据
eslint-config-airbnb-base
说明,您应该将eslint-config-airbnb-base
及其对等deps添加到您的package.json中。最简单的方法是:npx install-peerdeps --dev eslint-config-airbnb-base
,现在这个命令会将eslint-config-airbnb-base
和eslint-plugin-import
都添加到您的package.json中:最后一步是将
airbnb-base
添加到eslint config的extends
数组的airbnb-typescript/base
之前:就是这样!问题现在应该解决了。
qvtsj1bj3#
在我的例子中,我能够通过将“allowSyntheticDefaultImports”设置添加到“tsconfig.json”中的“compilerOptions”来修复它。
guicsvcw4#
如果配置没有问题
npm依赖提升导致的问题
项目根目录将依赖于与升级安装不匹配的eslint,因为插件报告错误“未找到规则'xxx'的ESLint定义
详细的问题解决过程在一篇文章中我写:https://www.yuque.com/cloudyan/faq/py7xb5
yvgpqqbh5#
如果您使用
.eslintrc.js
,则添加以下内容