#typescript #eslint #typescript-eslint
Вопрос:
Я пытаюсь отсортировать свой импорт по имени пакета, но, похоже, он не поддерживается на основе того, что доступно в документах.
Есть ли способ, чтобы это работало?
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
Приведенный выше код завершается с ошибкой, поскольку он хочет, чтобы BrowserModule находился в первой строке. Но я хочу, чтобы это считалось правильным, поскольку я хочу упорядочивать по имени пакета.
Вот моя конфигурация ESLint.
"sort-imports": [
"error",
{
"ignoreCase": true,
"ignoreDeclarationSort": false,
"ignoreMemberSort": false,
"memberSyntaxSortOrder": [
"none",
"all",
"multiple",
"single"
],
"allowSeparatedGroups": true
}
],
Ответ №1:
Базовое правило ESLint просто не поддерживает его — оно сортирует по имени.
Вы можете использовать другое правило сортировки, подобное приведенному здесь .
https://www.npmjs.com/package/eslint-plugin-simple-import-sort
Ответ №2:
Я использую eslint-plugin-import, и он поддерживает такую функциональность. Публикую мою конфигурацию для справки. Это обеспечило бы, чтобы импорт React всегда был первым, затем импорт, начинающийся с @my_org
, а затем остальное настраивается на основе порядка групп
"import/order": [
"error",
{
"alphabetize": {
caseInsensitive: true,
order: "asc",
},
"groups": ["external", "builtin", "parent", ["sibling", "index"]],
"newlines-between": "never",
"pathGroups": [
{
group: "external",
pattern: "react",
position: "before",
},
{
group: "external",
pattern: "@my_org/**",
position: "after",
},
],
"pathGroupsExcludedImportTypes": ["builtin"],
},
],