我有一个用typescript编写的无服务器项目。当我运行ESLint时,我得到了以下错误:
1:85 error Unable to resolve path to module 'aws-lambda' import/no-unresolved对于以下代码行:import { APIGatewayProxyEvent, APIGatewayProxyHandler, APIGatewayProxyResult } from 'aws-lambda'; (我的devDependencies中有"@types/aws-lambda": "^8.10.64" )。
我不明白可能是什么错误,因为输入已经安装,如果我尝试从"@types/aws-lambda“导入,VS Code告诉我直接从"aws-lambda”导入。
请问我做错了什么?
发布于 2020-12-20 20:10:40
这是我的.eslintrc文件中的配置
"settings": {
"import/parsers": {
"@typescript-eslint/parser": [".ts", ".tsx"]
},
"import/resolver": {
"typescript": {
"alwaysTryTypes": true,
"paths": "./tsconfig.json",
},
}
},另外,我注意到在您的tsconfig.json文件中没有包含typeRoots,因为您在exclude属性中排除了node_modules。应该是这样的
"typeRoots": [
"./node_modules/@types"
],
"exclude": [
"/node_modules/",
".serverless/**/*",
".webpack/**/*",
"_warmup/**/*",
"vscode/**/*",
"lib/**/*",
"tests"
]如果所有这些都失败了,最后的办法就是将它添加到.eslintrc文件的忽略列表中。
"import/no-unresolved": [
"error",
{
"ignore": [
"aws-lambda"
]
}
],发布于 2021-08-05 05:44:44
hendrixchord的anwser帮助我解决了这个问题,但以下是对我真正有效的必要步骤的精简版本:
# 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在.eslintrc文件中(请注意,我使用的是.js版本):
settings: {
'import/resolver': {
typescript: {
alwaysTryTypes: true,
},
},
},发布于 2021-02-23 15:07:10
如果我在定义类型时使用AWSLambda.APIGatewayProxyEvent,那么它对我来说是有效的:
const event: AWSLambda.APIGatewayProxyEvent = ...我不需要修改任何东西。
https://stackoverflow.com/questions/65369472
复制相似问题