Паспорт проекта
- Тип
- Технические модули
- Задача
- Передать библиотеке разбор, ошибки использования и систему справки после декларативного описания интерфейса программы.
- Для кого
- Разработчики Node.js-программ с командной строкой и вложенными командами.
- Технологии
- API
- Что потребуется
- В сохранённом README требуется Node.js не ниже 22.12.0; для асинхронного обработчика нужно использовать parseAsync.
- Основание
- 11 первоисточников
За 30 секунд
Передать библиотеке разбор, ошибки использования и систему справки после декларативного описания интерфейса программы.
Разбирает опции и аргументы, проверяет обязательные значения, конфликты и неизвестные опции; передаёт данные обработчику конечной команды и вызывает события до/после действия.
Разобранные значения опций, вызов обработчика команды, сообщения об ошибках и автоматически сформированная справка.
Как это работает
На входе
Программное описание командной строки и массив строковых аргументов. Каждый уровень снимает понятные ему опции и передаёт остаток следующей подкоманде.
Механизм
Разбирает опции и аргументы, проверяет обязательные значения, конфликты и неизвестные опции; передаёт данные обработчику конечной команды и вызывает события до/после действия.
Результат
Разобранные значения опций, вызов обработчика команды, сообщения об ошибках и автоматически сформированная справка.
Что важно понять
Техническое устройство
Каждая команда обрабатывает опции и передаёт остаток дальше; конечная проверяет параметры и вызывает hooks/обработчик. Подкоманды реализуются функциями либо отдельными исполняемыми файлами. Форматирование справки учитывает цветовые настройки среды.
Для чего создано
Передать библиотеке разбор, ошибки использования и систему справки после декларативного описания интерфейса программы.
Для кого
Разработчики Node.js-программ с командной строкой и вложенными командами.
Сценарии использования
Построение однокомандной или многокомандной программы, автоматическая справка и подключение асинхронных действий.
Идея решения
Использовать одно описание команды и для разбора входа, и для проверки, и для справки; вложенные команды получают только оставшуюся часть аргументов.
Какую задачу описывает источник
Документы прямо отмечают неоднозначность между значениями опций и аргументами, а у прежнего хранения опций на объекте Command — риск конфликта имён свойств.
Что известно из описания
Что потребуется
- В сохранённом README требуется Node.js не ниже 22.12.0; для асинхронного обработчика нужно использовать parseAsync.
- Policy помечает линию 15.x текущей на дату источника.
Что учитывать
- Опции с переменным числом значений могут быть неоднозначны с позиционными аргументами.
- По умолчанию ошибки, вывод help или версии могут завершать процесс; для встраивания предусмотрено переопределение.
- Старые документы описывают совместимость, а не рекомендуемый API нового кода.
Из первоисточников
Редакционный обзор NeoBridge Insight по материалам источников ниже. Права на исходные тексты, код и изображения принадлежат их правообладателям. Условия использования указаны в первоисточниках.
Независимое тестирование проекта не проводилось.

Комментарий NeoBridge
Общая справка
Что стоит уточнить
Основания и справочные материалы
API ↗