Простое симпатичное CLI приложение для Node.JS

0
6422
Добавить в избранное

Консольное приложение – это удобный способ выполнения повторяющихся задач. Разберем некоторые инструменты, полезные для создания CLI-программ.

Простое CLI приложение для Node.JS

Что будет делать приложение?

При слиянии веток всегда вызывает проблемы файл package-lock.json. Напишем простое демонстрационное приложение для Node.JS, которое будет облегчать работу с git-репозиторием. В его задачи входит удаление проблемного файла, его восстановление с помощью команды npm install и добавление в индекс git.

Вы можете найти готовое приложение здесь. Чтобы его запустить, используйте команду npx fix-package-lock.

Как взаимодействовать с командной строкой?

Чтобы передавать команды в терминал из скрипта, будем использовать пакет execa от Sindre Sohrus, который называют “лучшим child_process”. Для начала работы нужно выполнить команду npm install --save execa.

Файл index.js:

Теперь протестируем новый модуль.

>> node index.js
index.js
node_modules
package-lock.json
package.json

Выполнение последовательных действий

Чтобы сгенерировать package-lock, его сначала нужно удалить. После этого необходимо заново установить пакеты с помощью команды npm install.

Для выполнения нескольких действий подряд потребуется модуль Listr. Он позволяет делать нечто подобное:

Простое CLI приложение для Node.JS: модуль Listr

Запустите npm install --save listr и создайте в главном файле последовательность команд.

Содержимое файла index.js:

Теперь вывод node index.js будет выглядеть следующим образом:

Простое CLI приложение для Node.JS: модуль Listr

Длительные задачи, например, вызов execa для установки npm-пакетов, возвращают Promise. Listr выводит для них состояние выполнения. Также есть возможность отображать сообщение, которое изменяется с помощью Observables. Дополнительную информацию можно найти в документации.

Исполняемые js-файлы

Было бы гораздо удобнее запускать скрипт, используя ./index.js вместо node index.js. Чтобы сделать так, файл должен быть исполняемым. В UNIX системах для этого используется следующая команда:

chmod +x index.js

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

#!/usr/bin/env node

Его нужно добавить в файл index.js:

Теперь мы можем запускать приложение короткой командой:

./index.js

Создание исполняемого файла

В файле package.json есть поле bin. Оно дает npm команду создать исполняемый файл и установить его в PATH. Добавим эту опцию в наше приложение:

Публикация npm-пакета

Публикация модуля остается упражнением для читателя. Используя команду np, сделать это несложно.

Подсказка: просто запустите npx np в любом пакете, который вы пытаетесь опубликовать.

Готовое приложение можно найти здесь. Чтобы запустить его, используйте команду npx fix-package-lock.

Перевод статьи Hugo Di Francesco: How to make beautiful, simple CLI apps with Node.

Хотите получать больше интересных материалов с доставкой?

Подпишитесь на нашу рассылку:

И не беспокойтесь, мы тоже не любим спам. Отписаться можно в любое время.




Добавить комментарий