Comment rendre eslint résoudre les chemins mappés dans jsconfig


9

Dans mon projet nextjs, j'ai tracé un chemin jsconfig.jsonpour faciliter les importations absolues

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

Mes chemins d'importation ressemblent à ceci import { VIEW } from '@/src/shared/constants';

Mes eslintrc.jsparamètres sont spécifiés comme

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

J'obtiens toujours l'erreur disant que je ne peux pas résoudre "@ / what / ever / my / path / is"

Comment puis-je faire eslint réaliser le chemin jsconfig

Réponses:


6

J'utilisais babel-eslint comme analyseur dans eslintrc. Pendant la recherche, j'ai réalisé que je devais ajouter babel-plugin-module-resolverbabelrc pour résoudre les modules. Dans ce fichier, nous pouvons définir nos chemins mappés qui sont là dans notre jsconfig.

Par conséquent, l'ajout du plugin suivant dans le fichier babelrc a compilé mon code avec succès.

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

0

Selon les documents pour eslint-import-resolver-alias , la mappropriété doit être un tableau de tableaux, alors essayez ceci:

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

Vérifiez également que vous avez réellement eslint-import-resolver-aliasinstallé - c'est facile à oublier!


Le plugin est installé, j'ai également essayé de le faire avec le tableau. Toujours le même problème, il ne peut pas résoudre le chemin.
mdanishs
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.