Аль-Амин Новосхад
Как разработчики, мы живем с инструментами CLI. От Гит к Облачные раковины – Мы используем эти инструменты везде. Итак, пришло время сделать свой собственный. Мы будем использовать отличную каркас OCLIF Heroku в процессе.
Что oclif?
Это открытый Рамки Чтобы быстро построить инструменты CLI, и он предоставляется известным Heroku Отказ
Что собирается построить?
Мы сделаем команду списка TODO, которая может иметь четыре действия:
- Добавить новую задачу
- Просмотреть все задачи
- Обновление задачи
- Удалить задачу
Инициализировать наш проект
OCLIF может генерировать два типа проектов –
- Проекты, которые имеют одну команду.
- Проекты, которые могут иметь несколько команд, включая вложенные.
В этой статье нам понадобится несколько командных команд, поэтому давайте создадим его:
npx oclif multi todocli
Запуск этой команды и после получения инструкций будет инициализировать свежий проект, названный Тодоцлы Внутри текущего каталога.
Теперь давайте пойдем в каталог и запустите помощь:
cd todocli && ./bin/run --help
Это распечатает результаты ниже:
> USAGE $ todocli [COMMAND] COMMANDS hello help display help for todocli
Это показывает доступные команды и их документация.
Структура проекта
Внутри SRC Каталог мы можем найти каталог с именем Команды Отказ Этот каталог содержит все команды со своими относительными именами файлов. Например, если у нас есть команда Привет У нас будет файл с именем Hello.js Внутри этого каталога и команда будет работать без дополнительной настройки. Давайте удалим Hello.js Как нам не нужно это не нужно.
Настройка базы данных
Для хранения наших задач нам нужна система хранения. Для простоты мы будем использовать lowdb что довольно просто JSON Система хранения файлов. Сладкий для этого проекта?
Давайте установим это:
npm install lowdb --save
Давайте создадим db.json Файл внутри нашего корневого каталога проекта. Этот файл проведет наши данные. Тогда нам нужно установить превышать . Теперь мы создадим файл под названием db.js внутри SRC каталог. Этот файл проведет нашу базу данных.
Здесь мы просто загружаем необходимую библиотеку и файл сначала, затем определяя пустой массив TODOS в качестве нашей базовой коллекции (это как таблица, если вы думаете, как базы данных SQL).
Добавление задач
OCLIF предоставляет нам гладкую функциональность генерации команд. Давайте выполним следующее:
oclif command add
Это создаст файл с именем add.js внутри SRC/команды каталог. Давайте заменим контент этого файла с кодом ниже:
Файл имеет несколько ключевых компонентов:
- Функция запуска, которая выполняет основную функциональность этой команды,
- описание это документация для команды, а также
- Флаги, которые описывают флаги, переданные команду.
Здесь у нас есть флаг имени Задача который имеет Строка тип. Мы можем запустить команду
./bin/run add --task="welcome task"
Эта команда добавит задачу в нашу базу данных и распечатает ответ этой операции.
Показывая задачи
Здесь внутри show.js Мы показываем все задачи в порядке возрастания. Мы добавили немного цвета с Чалкис Чтобы дать нашу команду результатом лучшего взгляда.
Обновление задач
Для простоты мы сейчас просто устанавливаем задачи как сделано для нашей части обновления. Мы только что прошли задачу ID как Флаг Отказ
./bin/run update --id=1
Это установит сделано для задачи с ID Отказ
Снятие задач
Удаление довольно прост: мы проходим ID Как флаг, а затем удалить связанную задачу из нашей базы данных.
Почти сделано!
И так же, как мы сделали наши очень просто Тодоцлы Отказ Теперь, если мы хотим использовать его как любой другой обычный инструмент CLI или позвольте нашим друзьям использовать его, нам нужно сделать его пакет NPM. Так что на самом деле давайте опубликуем его на НПМ.
Построить и публиковать в НПМ
Прежде всего, убедитесь, что у вас есть учетная запись NPM. Затем вам нужно войти в систему за помощью команды
npm login
Затем в каталоге проекта запускается
npm run prepack
Это упаковывает проект и сделает его NPM-готовым с помощью сгенерированного README из описаний и флагов.
Теперь опубликуйте его на НПМ:
npm publish
Если все идет хорошо, то модуль успешно опубликован на NPM. Если это не работает, проверьте название проекта и версию.
Теперь мы можем использовать его как любой другой инструмент NPM с глобальной установкой:
npm install -g todocli
И тогда кто-нибудь может просто использовать эти команды в любое время, почти где угодно?
> todocli add --task="Great task!!!"> todocli show> todocli update --id=1> todocli remove --id=1
Если вы пришли так далеко после всей статьи, поздравляю? Ты обалденный. Теперь вы можете сделать небольшую задачу:
Задача
Идентификатор, назначающий задачи, не является правильным, вы можете исправить это? Дайте мне знать, как вы решаете это в разделе ответа.
Удачи, и спасибо за чтение:)
OCLIF: https://oclif.io.
lowdb: https://github.com/typicode/Lowdb.
Мел: https://github.com/chalk/chalk.
Тодоцлы: https://www.npmjs.com/package/todocli-frombd
Оригинал: “https://www.freecodecamp.org/news/how-to-build-a-cli-tool-in-nodejs-bc4f67d898ec/”