Как создать приложение CLI в Node.js

Как создать приложение CLI в Node.js
Такие читатели, как вы, помогают поддержать MUO. Когда вы совершаете покупку по ссылкам на нашем сайте, мы можем получать партнерскую комиссию. Читать далее.

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





В основном это служебные инструменты, которые взаимодействуют с операционной системой или приложениями, которые либо установлены локально, либо доступны через Интернет, для выполнения задачи в соответствии с вводом и директивами пользователя.





Понимание приложений CLI

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





Например, программа ls отображает информацию о файле и содержимое каталогов. Вы можете запустить это так:

 ls -l /home

Эта команда включает в себя:



  • Название программы: лс .
  • Опция (или флаг). В этом случае, — это опция, которая является сокращением от «длинный» и дает более подробную информацию.
  • Аргумент, /дом . Здесь аргумент указывает путь к каталогу, информацию о котором нужно показать.

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

Что такое Commander.js?

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





Объединив его с другими пакетами, такими как Chalk.js, для стилизации, вы можете быстро создать полнофункциональное приложение CLI в Node.js.

Создание приложения CLI в Node.js с использованием Commander.js

Рассмотрим пример приложения CLI, городской климат, который ищет значение слов и сокращений в социальных сетях из Городской словарь . Вы узнаете, как создать CLI и опубликовать его на НПМ реестр пакетов, чтобы другие могли его установить.





какие функции Windows следует включить в Windows 10

Создайте новую папку и инициализируйте новый проект Node.js с помощью следующих команд:

 mkdir urbanary-cli 
cd urbanary-cli
npm init -y

Этот CLI будет использовать Axios для отправки HTTP-запросов к API городского словаря. Вы можете использовать Рапид API для проверки конечных точек и просмотра учетных данных.

  Скриншот API городского словаря's page on Rapid API show user API credentials

Простой интерфейс командной строки с подкомандой и справкой

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

 npm install commander axios 

Создать новую папку, мусорное ведро , в каталоге вашего проекта и новый пустой файл, index.js :

 mkdir bin 
cd bin
touch index.js

мусорное ведро (сокращение от «двоичный») важна, поскольку она содержит файл точки входа, который Node вызывает при запуске вашего CLI. index.js file — это файл точки входа. Теперь отредактируйте файл index.js и начните создавать свой CLI с помощью API Commander.js.

Сначала импортируйте программа объект от Командира:

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

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

Определите находить подкоманда CLI для поиска слов из Urban Dictionary и добавления к ним описания, используя приведенный ниже код:

 // index.js 
program
    .command('find <word>')
    .description('find meaning of a word or abbreviation or slang')

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

ошибка доступа к содержимому папки, не загруженной

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

синхронизировать изображения facebook с контактами android

Чтобы проверить это, добавьте следующее:

 program.parse()

Затем запустите программу и передайте ей помощь команда, чтобы получить вывод ниже:

  Снимок экрана, показывающий результат выполнения команды справки.

Именно так любое стандартное приложение CLI будет отображать свою помощь пользователям, и с Commander вам не придется беспокоиться о ее создании самостоятельно. -час и --помощь параметры полезны для проверки руководства по использованию команды.

Определение вариантов и подготовка окончательной программы

Вы также определяете опцию, связывая вариант метод определения команды.

Вот как определить возможность включения примеров в определения слов:

 program.option('-e, --example', "Display examples") 

А вот как определить опцию, определяющую количество возвращаемых определений:

 program.option( 
    '-c, --count [amount]',
    'amount of definitions to display (max is 10)'
)

вариант Метод принимает два строковых параметра: один для имени параметра (как в короткой, так и в длинной форме), а другой для его описания. Дополнительный [количество] аргумент в считать Параметр — это значение количества отображаемых определений.

Теперь последний метод, который нужно добавить, — это метод действие метод. Вы будете реализовывать находить функциональность команды в этом методе. Добавьте его в цепочку, чтобы ваш код теперь выглядел так:

 program 
    .command('find <word>')
    .description('find meaning of a word or abbreviation or slang')
    .option('-e, --example', "Display examples")
    .option(
        '-c, --count [amount]',
        'amount of definitions to display (max is 10)'
    )
    .action(async (word, options) => {});

При такой настройке вот какая команда позволяет получить три определения ржу не могу с примерами будет выглядеть так:

 urbanary-cli find lol -e -c 3 

Или, используя полную форму каждого параметра:

 urbanary-cli find lol --example --count 3