Как заказать импорт с помощью правила импорта-импорта tslint
В моем проекте используется правило tslint "import-ordering"
import CopyLensModal from './CopyLensModal';
import FetchStatus from '../../../../../state/generic/models/FetchStatus';
import FlexRow from '../../../../generic/components/FlexRow';
import Geofilter from '../../../../../state/geofilter/models/Geofilter';
import Input from '../../../../generic/components/Input';
import * as React from 'react';
import * as salert from 'sweetalert';
import { func } from '../../../../../types/func';
import { Iterable } from 'immutable';
import { Button } from 'react-bootstrap';
tslint не устраивает этот порядок и сбой при ошибке
[2, 1]: Импорт источников внутри группы должен быть в алфавитном порядке.
[4, 1]: Импорт источников внутри группы должен быть в алфавитном порядке.
Эта страница не очень помогла, я попытался разместить импорт по-разному, но без везения. Какой порядок будет правильным?
Ответы
Ответ 1
Я согласен, что это сбивает с толку. Проблема заключается в том, что сравнения исходных строк включают в себя части имен ../..
для имен модулей, поэтому, чтобы успокоить правило, вам нужно отсортировать их следующим образом:
import FetchStatus from '../../../../../state/generic/models/FetchStatus';
import Geofilter from '../../../../../state/geofilter/models/Geofilter';
import FlexRow from '../../../../generic/components/FlexRow';
import Input from '../../../../generic/components/Input';
import CopyLensModal from './CopyLensModal';
Правило имеет две части и может быть настроено на принудительное упорядочение имен импорта и источников отдельно. Чтобы обеспечить соблюдение только упорядочения имен, вы можете использовать такую конфигурацию:
"ordered-imports": [true, {
"import-sources-order": "any",
"named-imports-order": "case-insensitive"
}]
Это приведет к ошибке для импорта следующим образом:
import { A, C, B } from 'some-module';
но не будет обеспечивать упорядочение для путей к модулю и т.д.
Ответ 2
хорошо также эта ошибка возникает, если нет пустой новой строки, добавленной как разделение между группами импорта.
import * как fs из 'fs'; import * as os from 'os';
import * как bar из './bar'; import * как foo из './foo';
также обратите внимание, если ошибка говорит так: (5,1): Импорт источников внутри группы должен быть в алфавитном порядке. это означает, что в указанном файле перейдите к строке # 5 и нажмите клавишу ввода, чтобы добавить новую пустую строку в качестве разделителя.
Я сделал это, и это решило мою проблему. для получения дополнительной информации об этой проблеме просмотрите эту страницу