eslint + jsconfig + nextjs模块路径别名(绝对路径导入-@)

发布时间:2020-07-07 15:18

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

我目前的做法是

来自

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

import Header from '@components/Header';

我得到了预期的结果。但是eslint会引发以下错误:

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

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

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

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

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

预先感谢...

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

回答1

最后,在研究了很多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'
回答2

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

  • 在您的baseUrl中添加一个compilerOptions(在我的情况下为"baseUrl": "."
  • paths对象中添加路径:
"paths": {
   "components": ["components/*"],
}
回答3

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

"settings": {
    "import/resolver": {
      "typescript": {} // this loads <rootdir>/tsconfig.json to eslint
    },
}
nestjs-config 相关推荐