Линтер и форматтер для JavaScript и TypeScript без настройки вручную: подключает Biome, ESLint или Oxlint с готовыми правилами одной командой.
lint-staged/lint-staged
Запускает форматтеры и линтеры только для подготовленных к коммиту файлов, чтобы непроверенный код не попадал в репозиторий.
- Звёзды
- 14,757
- Форки
- 479
- Открытые issues
- 2
- Последний коммит
- 6 дней назад
Что это?
lint-staged запускает произвольные shell-команды, например Prettier, ESLint или Stylelint, для файлов, добавленных в индекс git. Проверка всего проекта может занимать много времени и выдавать не относящиеся к делу ошибки, поэтому lint-staged ограничивает проверку файлами, которые действительно войдут в коммит.
Задачи настраиваются в виде JSON-объекта (в package.json, файле .lintstagedrc или конфиге на JS/TS), где шаблоны glob сопоставляются с командами. Подходящие файлы передаются командам в качестве аргументов. Команды могут выполняться параллельно или последовательно, а для пользовательской логики можно использовать функции JavaScript. Изменения, внесённые задачами, например автоисправления, добавляются в индекс для включения в коммит.
По умолчанию перед запуском задач lint-staged создаёт резервную копию с помощью git stash и откатывает изменения, если задача завершается с ошибкой. Обычно его подключают через pre-commit hook, например с помощью Husky. Также поддерживаются монорепозитории с отдельными конфигами для каждого пакета.
Ключевые возможности
- 01Запускает любые shell-команды для подготовленных к коммиту файлов, подходящих под шаблоны glob.
- 02Автоматически добавляет в индекс исправления, внесённые такими инструментами, как Prettier или ESLint --fix.
- 03Создаёт резервную копию текущего состояния с помощью git stash и восстанавливает его при ошибке.
- 04Поддерживает последовательное, параллельное и упорядоченное выполнение задач.
- 05Принимает конфигурацию из package.json, dotfiles или файлов конфигурации JS/TS.
- 06Поддерживает отдельные конфиги для каталогов в монорепозиториях.
Сценарии использования
- Запуск Prettier и ESLint для файлов JavaScript и TypeScript перед каждым коммитом.
- Проверка CSS или SCSS с помощью Stylelint только при изменении таких файлов.
- Введение правила, запрещающего коммитить файлы некоторых типов, например PDF.
- Применение отдельных конфигураций линтеров к пакетам в монорепозитории.
Быстрый старт
- 1
Установите lint-staged как dev-зависимость
npm install --save-dev lint-staged - 2
Настройте git-хук pre-commit для запуска lint-staged (часто для этого используют Husky)
- 3
Настройте lint-staged в package.json или отдельном файле конфигурации, например указав запуск ESLint для JS-файлов
- 4
Добавьте файлы в индекс и выполните git commit, чтобы запустить проверки
git commit
Что важно знать
- Требуется дополнительная настройка: менеджер git-хуков и настроенные инструменты, например ESLint или Prettier.
- Выполняет операции git, изменяющие рабочее дерево; по умолчанию для резервного копирования используется stash.
В подборках
Темы
Частые вопросы
- Что такое lint-staged?
- Запускает форматтеры и линтеры только для подготовленных к коммиту файлов, чтобы непроверенный код не попадал в репозиторий. lint-staged запускает произвольные shell-команды, например Prettier, ESLint или Stylelint, для файлов, добавленных в индекс git. Проверка всего проекта может занимать много времени и выдавать не относящиеся к делу ошибки, поэтому lint-staged ограничивает проверку файлами, которые действительно войдут в коммит.
- lint-staged можно использовать бесплатно? Какая у него лицензия?
- lint-staged распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- lint-staged всё ещё поддерживается?
- Активно поддерживается. Последний коммит в lint-staged — 31 окт. 2026 г..
- Для чего можно использовать lint-staged?
- Запуск Prettier и ESLint для файлов JavaScript и TypeScript перед каждым коммитом. Проверка CSS или SCSS с помощью Stylelint только при изменении таких файлов. Введение правила, запрещающего коммитить файлы некоторых типов, например PDF. Применение отдельных конфигураций линтеров к пакетам в монорепозитории.
- Как установить lint-staged?
- Установите lint-staged как dev-зависимость: npm install --save-dev lint-staged Настройте git-хук pre-commit для запуска lint-staged (часто для этого используют Husky) Настройте lint-staged в package.json или отдельном файле конфигурации, например указав запуск ESLint для JS-файлов Добавьте файлы в индекс и выполните git commit, чтобы запустить проверки: git commit
- Где скачать lint-staged?
- Исходный код и инструкции по установке — на GitHub: https://github.com/lint-staged/lint-staged
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Black — форматтер Python-кода с заданным стилем и предсказуемым результатом, который перезаписывает файлы с минимальными diff.
Утилита и библиотека для Python, которые автоматически сортируют и группируют импорты.
Фреймворк для управления pre-commit-хуками на разных языках и их запуска для проверки кода перед каждым Git-коммитом.
Расширяемый линтер для ECMAScript/JavaScript, который находит проблемные конструкции в коде и умеет автоматически исправлять многие из них.
Линтер JavaScript и TypeScript с настройкой по умолчанию: работает поверх ESLint, задаёт строгие правила и использует встроенный стиль кода.