You can set the ESLint module import resolution by adding this snippet to your .eslintrc.json
configuration file:
{
"settings": {
"import/resolver": {
"node": {
"extensions": [".js", ".jsx", ".ts", ".tsx"]
}
}
},
...
}
More informations about resolvers: https://github.com/benmosher/eslint-plugin-import#resolvers.
I had the same problem and I was only able to fix it by adding the typescript plugin to .eslintrc
, using the extends
option in .eslintrc
extends: [
"plugin:import/errors",
"plugin:import/warnings",
"plugin:import/typescript",
],
This does it for me:
.eslintrc.js
{
...
settings: {
...
'import/resolver': {
node: {
extensions: ['.js', '.jsx', '.ts', '.tsx'],
moduleDirectory: ['node_modules', 'src/'],
},
},
}
}
This was the only solution that worked for me.
First, you need to install this package:
yarn add -D eslint-import-resolver-typescript
Then add this to your .eslintrc
file so it can load the alias settings from your tsconfig.json
into ESLint:
{
"settings": {
"import/resolver": {
"typescript": {}
},
},
}
When using "eslint": "6.8.0" with "typescript": "3.8.3" besides adding the following to .eslintrc
:
"settings": {
"import/resolver": {
"node": {
"paths": ["src"],
"extensions": [".js", ".jsx", ".ts", ".tsx"],
}
},
}
You also need to add this line to tsconfig.json
under compilerOptions
:
"compilerOptions": {
...
// Base directory to resolve non-relative module names.
"baseUrl": "src",
...
}
If you've updated your .eslintrc
and tsconfig.json
files as suggested in the other answers, and you still have the problem - restart vscode.
Both ts and eslint were barking at me, so I had to add the following to my .eslintrc file:
{
...
"rules": {
....
"import/extensions": "off"
},
"settings": {
....
"import/resolver": {
"node": {
"extensions": [".js", ".jsx", ".ts", ".tsx"]
}
}
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With