Выяснить, как автоматически сортировать импорт при сохранении, было намного сложнее, чем мне хотелось бы признать. Может быть, это потому, что я особенно разборчив в порядке, или я хотел, чтобы он хорошо интегрировался с инструментами, которые я уже использую. В любом случае, я понял это, и вот как я это сделал.
Требования к решению
- Настраиваемый заказ. Я хочу сначала импортировать React
- Интегрируется с VS Code и запускается при сохранении
- Использует ESLint (предполагаю, что у вас уже установлен ESLint)
Как это сделать
- Установите Расширение ESLint.
npm i eslint-plugin-simple-import-sort -D
- Откройте настройки VS Code и найдите
codeactionsonsave
, затем нажмитеEdit in settings.json
.
3. Добавьте следующую конфигурацию. Это говорит VS Code запускать eslint --fix
при сохранении файла.
"editor.codeActionsOnSave": { "source.fixAll": true }
4. Добавьте следующую конфигурацию в ваш файл .eslintrc.json
.
{ "extends": [], "plugins": ["simple-import-sort"], "rules": { "simple-import-sort/imports": "error", "simple-import-sort/exports": "error" }, "overrides": [ { "files": ["**/*.js", "**/*.ts", "**/*.tsx"], "rules": { "simple-import-sort/imports": [ "error", { "groups": [ // `react` first, `next` second, then packages starting with a character ["^react$", "^next", "^[a-z]"], // Packages starting with `@` ["^@"], // Packages starting with `~` ["^~"], // Imports starting with `../` ["^\\.\\.(?!/?$)", "^\\.\\./?$"], // Imports starting with `./` ["^\\./(?=.*/)(?!/?$)", "^\\.(?!/?$)", "^\\./?$"], // Style imports ["^.+\\.s?css$"], // Side effect imports ["^\\u0000"] ] } ] } } ] }
5. При необходимости запустите npx eslint . —-fix
, чтобы выполнить начальный проход по вашему проекту.
Вот и все!
Вы можете настроить переопределения по своему вкусу. Проверьте eslint-plugin-simple-import-sort для получения дополнительной документации.