Добавление нескольких путей к шаблону eslint-plugin-import

Я хочу использовать eslint, чтобы заставить мой импорт быть в стандартном порядке.

У меня это работает, однако это приводит к длинному файлу eslint, так как у меня много разных путей. У меня есть псевдонимы TypeScript, с которыми я хочу, чтобы правила eslint исключались при сортировке внешних пакетов.

У меня работает так:

      "import/order": [
  "error",
  {
    "groups": ["builtin", "external", "internal"],
    "pathGroups": [
      {
        "pattern": "react*",
        "group": "external",
        "position": "before"
      },
      {
        "pattern": "Components/**",
        "group": "internal"
      },
      {
        "pattern": "Constants/**",
        "group": "internal"
      }
      ... more patterns here
    ],
    "pathGroupsExcludedImportTypes": ["react", "internal"],
    "alphabetize": {
      "order": "asc",
      "caseInsensitive": true
    }
  }
],

Мне было интересно, есть ли способ сгруппировать шаблоны, чтобы я мог сделать что-то вроде этого:

      "import/order": [
  "error",
  {
    "groups": ["builtin", "external", "internal"],
    "pathGroups": [
      {
        "pattern": "react*",
        "group": "external",
        "position": "before"
      },
      {
        "pattern": "Components/**|Constants/**|AnotherAlias/**|AnotherAlias/**",
        "group": "internal"
      }
    ],
    "pathGroupsExcludedImportTypes": ["react", "internal"],
    "alphabetize": {
      "order": "asc",
      "caseInsensitive": true
    }
  }
],

1 ответ

Шаблон представляет собой шаблон мини-соответствия . Как вы можете видеть, используя этот (я думаю) неофициальный тестер, чтобы шаблон соответствовал строке из набора, вам следует использовать оператор set:

      {string1,string2,string3}

В вашем случае вы можете написать так

      //...
"pathGroups": [
      {
        "pattern": "react*",
        "group": "external",
        "position": "before"
      },
      {
        "pattern": "{Components,ConstantsAnotherAlias,AnotherAlias}/**",
        "group": "internal"
      }
    ],
//...

Однако я не уверен, что это решит вашу проблему. Я решил это, правильно установив настройку eslintimport/internal-regex. Этот параметр сообщает eslint, а затем плагину (как вы можете видеть здесь ), как определить, является ли импорт внутренним. Итак, вы можете установить его:

      //...
"settings": {
  "import/internal-regex": "(Components|Constants|AnotherAlias|AnotherAlias)(/.+)?"
}
//...
Другие вопросы по тегам