首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Typescript/ESLint错误:无法解析模块'aws-lambda‘import/no的路径-未解析

Typescript/ESLint错误:无法解析模块'aws-lambda‘import/no的路径-未解析
EN

Stack Overflow用户
提问于 2020-12-19 19:44:36
回答 3查看 4.3K关注 0票数 1

我有一个用typescript编写的无服务器项目。当我运行ESLint时,我得到了以下错误:

代码语言:javascript
复制
  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”导入。

请问我做错了什么?

EN

回答 3

Stack Overflow用户

发布于 2020-12-20 20:10:40

这是我的.eslintrc文件中的配置

代码语言:javascript
复制
   "settings": {
        "import/parsers": {
            "@typescript-eslint/parser": [".ts", ".tsx"]
        },
        "import/resolver": {
            "typescript": {
                "alwaysTryTypes": true,
                "paths": "./tsconfig.json",
            },
        }
    },

另外,我注意到在您的tsconfig.json文件中没有包含typeRoots,因为您在exclude属性中排除了node_modules。应该是这样的

代码语言:javascript
复制
    "typeRoots": [
        "./node_modules/@types"
    ],
    "exclude": [
        "/node_modules/",
        ".serverless/**/*",
        ".webpack/**/*",
        "_warmup/**/*",
        "vscode/**/*",
        "lib/**/*",
        "tests"
    ]

如果所有这些都失败了,最后的办法就是将它添加到.eslintrc文件的忽略列表中。

代码语言:javascript
复制
    "import/no-unresolved": [
        "error",
        {
            "ignore": [
                "aws-lambda"
            ]
        }
    ],
票数 1
EN

Stack Overflow用户

发布于 2021-08-05 05:44:44

hendrixchord的anwser帮助我解决了这个问题,但以下是对我真正有效的必要步骤的精简版本:

代码语言:javascript
复制
# 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版本):

代码语言:javascript
复制
  settings: {
    'import/resolver': {
      typescript: {
        alwaysTryTypes: true,
      },
    },
  },
票数 1
EN

Stack Overflow用户

发布于 2021-02-23 15:07:10

如果我在定义类型时使用AWSLambda.APIGatewayProxyEvent,那么它对我来说是有效的:

代码语言:javascript
复制
const event: AWSLambda.APIGatewayProxyEvent = ...

我不需要修改任何东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65369472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档