Como fazer o eslint resolver caminhos mapeados no jsconfig


9

No meu projeto nextjs, mapeei o caminho jsconfig.jsonpara facilitar as importações absolutas

{
  "compilerOptions": {
    "baseUrl": "./",
    "paths": {
      "@/*": ["./*"]
    },
    "target": "es6",
    "module": "commonjs",
    "experimentalDecorators": true
  }
}

Meus caminhos de importação ficam assim import { VIEW } from '@/src/shared/constants';

Meu eslintrc.jstem configurações especificadas como

module.exports = {
    ... ,
    settings: {
        "import/resolver": {
          alias: {
            extensions: [".js"],
            map: ["@", "."]
          }
        }
      }
}

Ainda estou recebendo o erro dizendo que não consigo resolver "@ / what / ever / my / path / is"

Como faço para o eslint perceber o caminho do jsconfig

Respostas:


6

Eu estava usando babel-eslint como meu analisador no eslintrc. Durante a pesquisa, percebi que precisava adicionar o babel-plugin-module-resolverbabelrc para resolver os módulos. Neste arquivo, podemos definir nossos caminhos mapeados que estão lá em nosso jsconfig.

Portanto, a adição do seguinte plugin no arquivo babelrc compilou meu código com sucesso.

[
    "module-resolver",
    {
        "alias": {
          "@": "./"
        }
    }
]

0

De acordo com os documentos para eslint-import-resolver-alias , a mappropriedade deve ser uma matriz de matrizes, portanto, tente o seguinte:

module.exports = {
    ... ,
    settings: {
        "import/resolver": {
          alias: {
            extensions: [".js"],
            map: [ ["@", "."] ]
          }
        }
      }
}

Além disso, verifique se você realmente eslint-import-resolver-aliasinstalou - é fácil esquecer!


O plugin está instalado, eu tentei fazê-lo com matriz também. Ainda o mesmo problema, ele não pode resolver o caminho.
mdanishs 24/01
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.