Cómo hacer que Eslint resuelva rutas asignadas en jsconfig


9

En mi proyecto nextjs he mapeado la ruta jsconfig.jsonpara facilitar las importaciones absolutas

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

Mis rutas de importación se ven así import { VIEW } from '@/src/shared/constants';

Mi eslintrc.jstiene configuraciones especificadas como

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

Todavía recibo el error que dice que no se puede resolver "@ / what / ever / my / path / is"

¿Cómo hago que Eslint se dé cuenta de la ruta jsconfig?

Respuestas:


6

Estaba usando babel-eslint como mi analizador en eslintrc. Mientras buscaba, me di cuenta de que necesitaba agregar babel-plugin-module-resolverbabelrc para resolver los módulos. En este archivo podemos definir nuestras rutas asignadas que están allí en nuestro jsconfig.

Por lo tanto, agregar el siguiente complemento en el archivo babelrc compiló mi código con éxito.

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

0

De acuerdo con los documentos de eslint-import-resolver-alias , la mappropiedad debe ser una matriz de matrices, así que intente esto:

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

Además, verifique que realmente haya eslint-import-resolver-aliasinstalado: ¡es fácil de olvidar!


El complemento está instalado, intenté hacerlo también con array. Sigue siendo el mismo problema, no puede resolver el camino.
mdanishs
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.