首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >eslint + jsconfig + nextjs模块路径别名(absolue path import - @)

eslint + jsconfig + nextjs模块路径别名(absolue path import - @)
EN

Stack Overflow用户
提问于 2020-07-07 15:18:54
回答 3查看 3.7K关注 0票数 7

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

我现在的方法是

从…

代码语言:javascript
复制
import Header from '../../../components/Header';

代码语言:javascript
复制
import Header from '@components/Header';

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

  • 无法解析到模块的路径(eslint /无未解析)

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

代码语言:javascript
复制
    settings: {
    'import/resolver': {
      node: {
        paths: ['src'],
      },
    },
  },

但同样的错误也会被抛出。

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

提前谢谢..。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-07-24 14:28:08

最后,在深入研究了大量的GitHub答案之后.

在你的eslintrc文件里。添加以下别名

代码语言:javascript
复制
    settings: {
    'import/resolver': {
      alias: {
        map: [
          ['@components', '../../../components/'],
          ['@images', '../../../assets/images/'],
        ],
        extensions: ['.js', '.jsx'],
      },
    },
  },

还要修复流配置文件中的流错误,添加name_mapper

代码语言:javascript
复制
module.name_mapper='^@components' ->'<PROJECT_ROOT>/../../../components'
module.name_mapper='^@images' ->'<PROJECT_ROOT>/../../../assets/images'
票数 7
EN

Stack Overflow用户

发布于 2020-12-13 13:56:46

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

代码语言:javascript
复制
"settings": {
    "import/resolver": {
      "typescript": {} // this loads <rootdir>/tsconfig.json to eslint
    },
}

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

票数 5
EN

Stack Overflow用户

发布于 2020-07-08 09:36:57

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

  • 在您的baseUrl中添加一个compilerOptions (在我的例子中是"baseUrl": ".")
  • paths对象中添加路径:
代码语言:javascript
复制
"paths": {
   "components": ["components/*"],
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62778537

复制
相关文章

相似问题

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