Repolode
lint-staged

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. 1

    Установите lint-staged как dev-зависимость

    npm install --save-dev lint-staged
  2. 2

    Настройте git-хук pre-commit для запуска lint-staged (часто для этого используют Husky)

  3. 3

    Настройте lint-staged в package.json или отдельном файле конфигурации, например указав запуск ESLint для JS-файлов

  4. 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 обновляется ежедневно.

Похожие проекты

Расширяемый линтер для ECMAScript/JavaScript, который находит проблемные конструкции в коде и умеет автоматически исправлять многие из них.

27,6 тыс.+1 за неделю5,2 тыс.JavaScriptMITАктивно поддерживаетсяОбновлён 8 часов назад