Error de Typescript/ESLint: No se puede resolver la ruta al módulo 'aws-lambda' import/no-unresolved
Tengo un proyecto serverless escrito en TypeScript. Cuando ejecuto ESLint, obtengo el siguiente error:
1:85 error Unable to resolve path to module 'aws-lambda' import/no-unresolved
Para la siguiente línea de código: import { APIGatewayProxyEvent, APIGatewayProxyHandler, APIGatewayProxyResult } from 'aws-lambda'; (tengo "@types/aws-lambda": "^8.10.64" en mis devDependencies).
No entiendo cuál podría ser el error, ya que la tipificación está instalada y si intento importar desde "@types/aws-lambda", VS Code me dice que importe directamente desde "aws-lambda".
¿Qué estoy haciendo mal aquí, por favor?
Respuesta #1
La respuesta de hendrixchord me ayudó a resolver el problema, pero aquí está la versión resumida de los pasos necesarios que realmente funcionaron para mí:
It's a must, otherwise the below `settings` won't work:
npm install --save-dev eslint-import-resolver-typescript
Not `--save-dev`.
npm install @types/aws-lambda
En el archivo .eslintrc (nota que estoy usando la versión .js):
settings: {
'import/resolver': {
typescript: {
alwaysTryTypes: true,
},
},
},
Respuesta #2
Esta es la configuración en mi archivo .eslintrc
"settings": {
"import/parsers": {
"@typescript-eslint/parser": [".ts", ".tsx"]
},
"import/resolver": {
"typescript": {
"alwaysTryTypes": true,
"paths": "./tsconfig.json",
},
}
},
También he notado que en tu archivo tsconfig.json no has incluido typeRoots ya que has excluido node_modules en tu propiedad exclude. Debería ser así
"typeRoots": [
"./node_modules/@types"
],
"exclude": [
"/node_modules/",
".serverless/**/*",
".webpack/**/*",
"_warmup/**/*",
"vscode/**/*",
"lib/**/*",
"tests"
]
Si todo eso falla, el último recurso sería agregarlo a la lista de exclusión en el archivo .eslintrc.
"import/no-unresolved": [
"error",
{
"ignore": [
"aws-lambda"
]
}
],
