В каждом проекте рано или поздно появляются серые, поблекшие импорты. Они висят, ни на что не влияют, но глаза мозолят. Ревьюеры тратят время на проверку, нужны ли они вообще. А кодовая база обрастает балластом, который никто не замечает, но всем мешает.
Одна команда, которая все решает:
В корне проекта достаточно выполнить:
dart pub get && dart fix --apply
Анализатор
Dart пробежится по всем файлам, найдет неиспользуемые импорты и удалит их. Без лишних вопросов, без ручного перебора каждого файла.
Если хочется сначала посмотреть, что именно будет удалено, можно выполнить
dart fix --dry-run. Покажет список изменений, но ничего не тронет.
Почему об этом вообще стоит думать:
Неиспользуемые импорты не ломают код, но они делают его грязным. Ревьюеры тратят время на проверку того, что на самом деле не используется. Линтеры и форматтеры работают хуже, когда списки импортов захламлены. А сам проект со временем становится тяжелее и менее понятным.
dart fix решает эту проблему мгновенно. Инструмент официальный, встроенный в экосистему
Dart, так что никаких сторонних зависимостей тащить не нужно.
Как автоматизировать:
Можно добавить
dart fix --apply в
pre-commit хук. Тогда перед каждым коммитом неиспользуемые импорты будут улетать автоматически. Никто не забудет, не пропустит, не поленится.
Еще проще - настроить
CI, чтобы он проверял наличие неиспользуемых импортов и падал, если они есть. А в
analysis_options.yaml добавить:
analyzer:
errors:
unused_import: error
Тогда
dart analyze будет краснеть при любом забытом импорте.
Что важно помнить:
Перед массовой чисткой лучше сделать коммит - мало ли что. Сгенерированные файлы (.g.dart)
dart fix трогать не должен, они все равно перезапишутся при следующей сборке. И всегда после чистки стоит прогнать
dart analyze && flutter test, чтобы убедиться, что ничего не сломалось.
Вывод:
dart fix --apply - это не магия, а просто правильный инструмент. Он не делает код быстрее и не добавляет новых фич. Зато он убирает мусор, который отвлекает, запутывает и создает иллюзию сложности. Если в вашем проекте есть неиспользуемые импорты - команда решит проблему за секунду. Если их нет - вы либо уже все почистили, либо просто не замечаете.