web-dev-qa-db-fra.com

Comment ajouter manuellement un chemin à résoudre dans eslintrc

J'ai un dossier dans mon projet main que je résous comme un module. Par exemple import x from 'main/src' importations main/src/index.js. Cela se fait via la configuration d'alias de résolution du webpack.

Un problème que je rencontre est de se débarrasser des erreurs via eslint. Je sais que eslint fournit un plugin de résolution Webpack, cependant, je ne parviens pas à le faire fonctionner. Je suppose que c'est parce que je suis sur le WebPack 2 et que j'utilise es6 dans les fichiers de configuration de son WebPack.

Existe-t-il un moyen manuel d’écrire un paramètre de résolution qui résout ce problème pour mon eslint?


Le seul autre hack que j'ai vu dans le travail utilise import/core-modules mais je dois ensuite lister tous les dossiers de l’arborescence de sous-répertoires main/src/bar, main/src/foo. Ce ne serait pas idéal.

39
wlingke

Je pense que le lien ci-dessous vous aide. Vous pouvez ajouter des répertoires de résolution en utilisant config.

https://github.com/benmosher/eslint-plugin-import#resolvers

Par exemple, si vous voulez résoudre src/, Vous pouvez écrire comme ci-dessous sur .eslintrc.

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

Ensuite, ESLint résolvent depuis le répertoire src. Vous pouvez exiger src/hoge/moge.js En écrivant const moge = require('hoge/moge'); et ESLint le sait.

91
Sota Sugiura

Trop tard pour voir cette question. En fait, il existe déjà un résolveur nommé eslint-import-resolver-alias qui implémente cette fonctionnalité avec le paramètre ci-dessous.

{
  settings: {
    'import/resolver': {
      'alias': [
        ['main/src', './main/src']
       ]
     }
  }
}
10
johvin