Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Використання Модуля Commander для CLI Застосунків | Створення Консольних Застосунків з Node.js
Розробка бекенду з Node.js та Express.js

Використання Модуля Commander для CLI Застосунків

Свайпніть щоб показати меню

Розробка інтерфейсу командного рядка (CLI) за допомогою модуля, такого як Commander, може бути більш керованою. Хоча Node.js має вбудовані механізми для обробки аргументів командного рядка, з розширенням CLI їх стає складно підтримувати. Тут у пригоді стає Commander, який надає такі переваги:

  • Оптимізована розробка CLI: Commander спрощує створення CLI, зменшуючи складність і дозволяючи зосередитися на визначенні команд та їх функцій;
  • Детальні описи команд і опцій: За допомогою Commander можна швидко додавати описи до команд і опцій, підвищуючи зручність використання CLI;
  • Автоматичний розбір аргументів: Commander автоматизує процес розбору аргументів командного рядка, що зменшує обсяг коду для ручної обробки аргументів.

Встановлення модуля Commander

Для початку потрібно встановити модуль Commander з NPM. Не хвилюйтеся, цей процес простий. Перш ніж почати використовувати Commander, необхідно додати його до проєкту. Просто виконайте наступну команду для встановлення:

npm install commander

Створення команд і опцій

З Commander можна визначати команди, задавати їхню поведінку та додавати описи. Крім того, можна описувати опції, які змінюють поведінку команд. Ось короткий огляд можливостей Commander:

Визначення команди

Для визначення команди використовується метод .command() об'єкта program. Основна структура виглядає так:

program.command('commandName [arguments]')
  • commandName: назва команди;
  • [arguments]: необов'язкові аргументи, які приймає команда.

Додавання опису до команди

Можна додати опис до команди за допомогою методу .description():

program.command('commandName [arguments]').description('Description of the command');

Обробка дій команди

Вказати дію, яка виконується при запуску команди, можна за допомогою методу .action(). Тут визначається логіка, пов'язана з командою:

program.command('commandName [arguments]').action((...arguments) => {
  // Command logic goes here
});

Ось повний приклад:

program
  .command('greet <name>')
  .description('Greet a person')
  .action((name) => {
    console.log(`Hello, ${name}!`);
  });

Ось приклад коду з відео:

const { program } = require("commander");

program
  .version("1.0.0")
  .command("greet <name>")
  .description("Greet a person")
  .action((name) => {
    console.log(`Hello, ${name}!`);
  });

program.parse(process.argv);
Опис коду
expand arrow
  • Рядок 1: імпортує об'єкт program з бібліотеки commander. Цей об'єкт використовується для визначення та керування інтерфейсом командного рядка;
  • Рядок 3: встановлює версію застосунку на 1.0.0. Ця версія відображається, коли користувачі запускають застосунок з прапорцем --version;
  • Рядок 4: визначає команду greet, яка приймає обов'язковий аргумент <name>;
  • Рядок 5: додає опис до команди greet, щоб пояснити її призначення;
  • Рядок 6: визначає дію, яка виконується при виклику команди greet:
(name) => {
  console.log(`Hello, ${name}!`);
}

Функція отримує аргумент name і виводить привітальне повідомлення з використанням шаблонного літерала;

  • Рядок 9: розбирає аргументи командного рядка за допомогою process.argv і виконує відповідну команду.

Підсумок

Цей код створює простий CLI-застосунок з використанням бібліотеки commander. Він визначає команду greet, приймає ім'я як вхідний параметр, виконує дію привітання та обробляє аргументи командного рядка для запуску відповідної команди.

Спробуйте самостійно

Найкраще навчання відбувається через практику. Спробуйте запустити цей код на своєму комп'ютері та спостерігайте за результатом. Взаємодійте зі скриптом і отримуйте задоволення від створення унікальних привітань за допомогою Commander!

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 6

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 2. Розділ 6
some-alt