Используйте эти библиотеки и утилиты для создания современных программ CLI со всеми необходимыми прибамбасами.

Интерфейс командной строки (CLI) — это способ взаимодействия с компьютерной программой или операционной системой с помощью текстовых команд. Инструмент CLI — это служебная программа, которую можно запустить из командной строки. Инструменты CLI обычно принимают текстовые команды от пользователя и выполняют определенные задачи на основе этих команд.

Качественные инструменты CLI должны поддерживать широкий спектр функций. Они могут анализировать аргументы командной строки и генерировать справку по использованию, чтобы обеспечить визуальную обратную связь, среди других функций.

Существует несколько пакетов Node.js, которые могут помочь вам быстро создавать инструменты CLI, предлагая широкий спектр функций и гибкость. Здесь вы познакомитесь с некоторыми из лучших пакетов Node.js для создания инструментов CLI и откроете для себя их ключевые функции.

Commander — это пакет Node.js для создания интерфейсов командной строки. Он предоставляет API для определения команд, параметров и аргументов, упрощая создание инструментов CLI.

instagram viewer

Commander заботится о разборе аргументов в опции и аргументы командной строки. Кроме того, он отображает ошибки для проблем и нераспознанных параметров и автоматически создает справку по использованию (документация CLI).

Чтобы установить Commander как зависимость, выполните следующую команду:

нпм установить командир

Вот пример использования Commander в приложении Node.js:

// index.js
константа {Команда} = требовать("командир");

// создание экземпляра команды
константа программа = новый Команда();

// создание инструмента
программа
.имя("Математика-утилита")
.описание(«Инструмент командной строки для выполнения простых математических функций»)
.версия("1.0.0");

// добавляем команду
программа
.команда("добавлять")
.описание(«Добавь два числа»)
.аргумент("", "первый номер")
.аргумент("", "второй номер")
.действие((а, б) => {
консоль.бревно(parseInt(а) + parseInt(б));
});

программа.parse();

Приведенный выше пример представляет собой инструмент командной строки для выполнения простых математических функций. В приведенном выше блоке кода реализована функция «добавить» для инструмента CLI с использованием методов из command.js.

Вы можете использовать инструмент командной строки выше, выполнив эту команду в своем терминале:

индекс узла добавить 2 2

Вы также можете просмотреть автоматически сгенерированную справку для инструмента CLI, выполнив эту команду:

узел cli -h

С помощью пакета Commander.js вы можете создавать полнофункциональные и функциональные инструменты CLI с готовой документацией с помощью простых команд.

Inquirer.js — это пакет Node.js для создания интерактивных пользовательских интерфейсов командной строки. Он предоставляет набор компонентов пользовательского интерфейса, таких как подсказки, списки и флажки, упрощая создание инструментов CLI, которые могут взаимодействовать с пользователем.

Чтобы установить Inquirer как зависимость, выполните следующую команду:

нпм установить исследователь

Вот пример использования Inquirer.js:

// index.js
Импортировать исследователь от"вопрос";

исследователь
.быстрый([
{
тип: "вход",
имя: "имя",
сообщение: "Как вас зовут?",
},
])
.затем((ответы) => {
консоль.бревно(`Привет ${ответы.имя}`);
});

В этом примере используется Inquirer.js для получения пользовательского ввода с терминала и регистрации приветственного сообщения пользователю.

Inquirer.js не поддерживает CommonJS модульная система. Вы должны использовать модульную систему ES6 или понизить версию пакета до версии 8.0.0.

Inquirer.js предоставляет множество параметров настройки подсказок, включая выбор, проверку и значения по умолчанию, что делает его идеальным для создания интерактивных инструментов CLI, которые могут взаимодействовать с пользователем.

Chalk — это пакет Node.js, который предоставляет простой способ добавления цветов в вывод терминала, упрощая создание читаемых и привлекательных инструментов CLI.

Он обеспечивает большую гибкость в определении цветов и стилей для текста. Однако вы не можете использовать Chalk отдельно для создания инструментов CLI; вы должны использовать его с такими пакетами, как Commander и Inquirer.js.

Чтобы установить Chalk как зависимость, выполните следующую команду:

нпм установить мел

Вот пример того, как использовать Chalk для добавления цветов к выводу консоли:

Импортировать мел от"мел";

консоль.log (мел.синий("Привет, мир!"));
консоль.бревно(мел.красный.смелый("Предупреждение"));
консоль.бревно(мел.белый.курсив("успех"));

консоль.бревно(
мел.желтый.bgСиний("Этоттекстимеетажелтыйпередний планисинийфон")
);

Chalk предоставляет множество других методов для определения цветов и стилей, в том числе подчеркнуть, зачеркнутый, различные оттенки фоновых цветов и многое другое.

Chalk не поддерживает модульную систему CommonJS. Вы должны использовать модульную систему ES6 или понизить пакет до версии 4.0.0.

Chalk — отличный пакет, позволяющий сделать ваши инструменты командной строки более привлекательными и читабельными. Кроме того, вы можете легко интегрировать его в существующий код без сложной настройки.

Node Spinner — это пакет Node.js, который предоставляет простой способ отображения анимации счетчика в инструментах CLI. Вы можете использовать этот пакет, чтобы указать, что длительный процесс выполняется, и дать пользователю визуальную подсказку о том, что инструмент все еще работает.

Чтобы установить Node Spinner как зависимость, выполните следующую команду:

нпм установить кли-спиннер

Вот пример того, как использовать Node Spinner для отображения анимации счетчика:

константа Спиннер = требовать("кли-спиннер").Спиннер;

константа спиннер = новый Спиннер("обработка... %s");
spinner.setSpinnerString("|/-\\\\");
спиннер.начинать();

установить время ожидания (() => {
спиннер.текст = «Задание выполнено».;

установить время ожидания (() => {
спиннер.останавливаться();
}, 500);
}, 5000);

Этот код использует библиотеку для отображения счетчика до завершения процесса. Код моделирует операцию, которая длится 5 секунд, используя setTimeout. По истечении времени он меняет отображаемый текст с «Обработка...» на «Задача выполнена». и останавливает спиннер через 0,5 секунды.

Node Spinner предоставляет ряд параметров настройки, таких как изменение стилей счетчика и текста. Он также поддерживает несколько счетчиков, что позволяет отображать разные анимации для разных частей вашего инструмента CLI.

Figlet — это пакет Node.js, предоставляющий простой способ создавать ASCII-арт из текста.

Чтобы установить figlet как зависимость, выполните следующую команду:

нпм установить филе

Вот пример того, как использовать figlet для создания ASCII-графики:

константа фиглет = требовать("фигурка");

филе("Привет, мир!!", (ошибка, данные) => {
если (ошибка) {
консоль.бревно("Извините, что-то пошло не так");
консоль.дир (ошибка);
возвращаться;
}

консоль.log (данные);
});

В приведенном выше примере создается ASCII-графика со строкой «Hello World!!» с помощью Figlet и выводит его на консоль.

Выполнение этого примера должно привести к следующему выводу:

Figlet предоставляет множество стилей шрифтов, которые вы можете использовать для настройки внешнего вида вашего изображения ASCII. Вы можете указать стиль шрифта, передав объект параметров в филе функция.

Например:

филе("Привет, мир!!", { шрифт: "Колокол" }, (ошибка, данные) => {})

Использование Figlet в вашем инструменте CLI добавляет визуального интереса к вашим инструментам и делает их более привлекательными для ваших пользователей.

При выборе пакетов для своего инструмента CLI вы должны учитывать свои потребности и выбирать пакеты, которые обеспечивают соответствующие им функциональные возможности, стиль и совместимость.

Экосистема Node.js предоставляет различные пакеты, которые могут анализировать аргументы командной строки, создавать пользовательский интерфейс командной строки, отображать стилизованный текст и многое другое. Использование правильного сочетания позволит вам создавать инструменты командной строки, которые будут одновременно и высокофункциональными, и удобными для пользователя.