Как заставить eslint разрешать пути, отображенные в jsconfig - PullRequest
9 голосов
/ 23 января 2020

В моем следующем js проекте я указал путь в jsconfig.json, чтобы упростить абсолютный импорт

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

Мои пути импорта выглядят так import { VIEW } from '@/src/shared/constants';

My eslintrc.js имеет настройки, заданные как

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

Я все еще получаю сообщение о том, что не могу решить "@ / what / ever / my / path / is"

Как заставить eslint реализовать путь jsconfig

Ответы [ 2 ]

6 голосов
/ 26 января 2020

Я использовал babel-eslint в качестве парсера в eslintr c. При поиске я понял, что мне нужно добавить babel-plugin-module-resolver в babelr c для разрешения модулей. В этом файле мы можем определить наши отображенные пути, которые есть в нашем jsconfig.

Следовательно, добавление следующего плагина в файл babelr c успешно скомпилировало мой код.

[
    "module-resolver",
    {
        "alias": {
          "@": "./"
        }
    }
]
0 голосов
/ 23 января 2020

Согласно документам для eslint-import-resolver-alias , свойство map должно быть массивом массивов, поэтому попробуйте это:

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

Кроме того, дважды - проверьте, что у вас действительно установлен eslint-import-resolver-alias - это легко забыть!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...