6

我正在尝试使用nextjs 文档之后的自定义别名导入文件。

我目前的做法是

import Header from '../../../components/Header';

import Header from '@components/Header';

我得到了预期的结果。但是 eslint 抛出以下错误:

  • 无法解析模块的路径(eslint - 导入/没有未解析)

我尝试在我的 eslintrc 文件中添加以下行来解决错误

    settings: {
    'import/resolver': {
      node: {
        paths: ['src'],
      },
    },
  },

但是 eslint 仍然会抛出同样的错误。

解决这个问题的正确方法是什么?

提前致谢...

注意:我不想删除 eslint,我需要 @components 导入别名

4

3 回答 3

6

您还需要安装npm i -D eslint-import-resolver-typescript,然后将以下内容添加到 eslint 配置文件中:

"settings": {
    "import/resolver": {
      "typescript": {} // this loads <rootdir>/tsconfig.json to eslint
    },
}

参考:https ://gourav.io/blog/nextjs-cheatsheet

于 2020-12-13T13:56:46.843 回答
5

最后在深入研究了许多 GitHub 答案等之后......

在您的 eslintrc 文件中...添加以下别名

    settings: {
    'import/resolver': {
      alias: {
        map: [
          ['@components', '../../../components/'],
          ['@images', '../../../assets/images/'],
        ],
        extensions: ['.js', '.jsx'],
      },
    },
  },

并且还要修复 flowconfig 文件中的流错误添加 name_mapper

module.name_mapper='^@components' ->'<PROJECT_ROOT>/../../../components'
module.name_mapper='^@images' ->'<PROJECT_ROOT>/../../../assets/images'
于 2020-07-24T14:28:08.767 回答
1

您可以尝试在tsconfig.json/中添加自定义路径jsconfig.json,如下所示:

  • baseUrl在你的compilerOptions(在我的情况下是"baseUrl": ".")中添加一个
  • paths在对象中添加路径:
"paths": {
   "components": ["components/*"],
}
于 2020-07-08T09:36:57.877 回答