Публикация вашего пакета в NPM не ограничивается одной командной строкой “NPM Publish”, есть и другие шаги, которые вы должны сделать, прежде чем выпустить свой продукт другим разработчикам. Но есть ли способ оптимизировать это в одной командной строке? Да!
Aux4 это генератор CLI с открытым исходным кодом (интерфейс командной строки), дружественный для использования в вашем проекте. Он генерирует CLI из простого файла JSON.
Структура JSON проста, это объект со списком профилей. Каждый профиль имеет имя и список команд. Основной профиль – это то, где AUX4 начнет перечислять ваши команды.
Установите AUX4
Aux4 – это пакет NPM, вы можете легко установить:
npm install -g aux4
Создать файл .aux4
Вы можете создать .aux4
файл в корне вашего проекта.
{ "profiles": [ { "name": "main", "commands": [ { "value": "release", "execute": [ "echo 'npm publishing'" ] } ] } ] }
Выполнять
Выполнить просто использовать aux4
Команда из корневой папки вашего проекта или любого подразделения. Вывод будет NPM Publishing
Анкет
aux4 release npm publishing
Добавить реальные шаги
Допустим, первый шаг, который вы хотите сделать, – это выполнить ваши тесты, измените версию в Package.json
Файл, после этого, создайте свой пакет, создайте тег на GIT и, наконец, опубликуйте в NPM, и. выдвигая ваши изменения в репозиторий. Вот шаги:
- тест
- Определите версию NPM
- строить
- git Tag
- NPM Publish
- git push
В этом посте я просто демонстрирую, что вы можете сделать, но должен адаптироваться к реальности вашего проекта и выполнить необходимые шаги.
{ "profiles": [ { "name": "main", "commands": [ { "value": "release", "execute": [ "npm test", "npm version patch", "npm run build", "json:cat package.json", "set:versionNumber=${response.version}", "git tag -a ${versionNumber} -m '${versionNumber}'", "git push --follow-tags", "npm publish ./build", "rm -rf build", "git push", "echo ${versionNumber} released successfully" ] } ] } ] }
Что это за строки?
Я собираюсь описать каждую строку, чтобы прояснить ее.
NPM Тест
выполнить тесты.
NPM версия патч
Увеличьте патч текущей версии, определенной в вашем Package.json
файл. например: если ваша текущая версия 1.0.1
Это увеличит к 1.0.2
Анкет
NPM Run Build
Он построит ваш проект, если у вас будет определено его в сценариях. Вы можете сделать это по -разному, это просто демонстрация.
json: cat package.json
Cat Package.json
печатать содержимое файла на вывод консоли. Префикс json:
Преобразуйте строку JSON в объект JSON.
SET: versionnumber = $ {response.version}
В aux4 $ {ответ}
является выводом предыдущей строки, в данном случае, как в предыдущей строке мы преобразовали JSON в объект, мы можем получить доступ к его свойствам. Здесь он настраивает переменную версия Number
с версией пакета. Структура Установить: variable = значение
.
Git Tag -a $ {versionnumber} -m ‘$ {versionnumber}’
Создать тег в репозитории с той же версией.
git push–follow-tags
Только прожмите только теги в ваш репозиторий GIT.
NPM Publish ./build
Публикуйте пакет в NPM.
RM -RF Build (необязательно)
Удаляет сборка
папка. Это не нужно, но это может быть полезно.
git push
Толкает ваши изменения в репозиторий GIT.
Echo $ {versionnumber} выпущен успешно
Отображения 1.0.2 выпущено успешно
к выводу.
Добавьте документацию в свою команду
AUX4 позволяет документировать ваши команды, поэтому другие люди, использующие это, могут легко понять, какова цель ваших команд. Для этого вам просто нужно добавить раздел справки в вашу команду.
{ "profiles": [ { "name": "main", "commands": [ { "value": "release", "execute": [ "npm test", "npm version patch", "npm run build", "json:cat package.json", "set:versionNumber=${response.version}", "git tag -a ${versionNumber} -m '${versionNumber}'", "git push --follow-tags", "npm publish ./build", "rm -rf build", "git push", "echo ${versionNumber} released successfully" ], "help": { "description": "publish a new version of my package to npm" } } ] } ] }
Документация отображается при выполнении команды aux4
Анкет
aux4 aux4 aux4 utilities release publish a new version of my package to npm
Добавьте параметр
Вы можете добавить параметр на случай, если вы не хотите выпустить патч
каждый раз. Таким образом, в параметре вы можете указать, какой тип версии вы выпускаете.
{ "profiles": [ { "name": "main", "commands": [ { "value": "release", "execute": [ "npm test", "npm version ${version}", "npm run build", "json:cat package.json", "set:versionNumber=${response.version}", "git tag -a ${versionNumber} -m '${versionNumber}'", "git push --follow-tags", "npm publish ./build", "rm -rf build", "git push", "echo ${versionNumber} released successfully" ], "help": { "description": "publish a new version of my package to npm" "variables": [ { "name": "version", "text": "type of version release. e.g.: major, minor, patch", "default": "patch" } ] } } ] } ] }
Переменные имеют три атрибута:
имя
: Имя переменнойТекст
: Документация переменнойпо умолчанию
: Значение по умолчанию в случае, если переменная не определена.
NPM версия $ {версия}
Использование переменной для указания типа версии.
Документация
aux4 aux4 aux4 utilities release publish a new version of my package to npm - version [patch] type of version release. e.g.: major, minor, patch
Исполнение
aux4 release --version minor 1.1.0 released successfully
Вывод
Aux4 – отличный инструмент для оптимизации вашего времени, упрощения и документирования ваших сценариев и облегчить обмен вашей командой. Основное преимущество использования AUX4 – это позволяет всей вашей команде не забыть о каком -либо важном шаге, выполняя какую -то задачу, поделившись своим инструментом Project с вашей командой.
Комментарий
Ваше мнение имеет значение, что вы думаете о AUX4? Собираетесь ли вы использовать его в своем проекте? Пожалуйста, поделитесь своими мыслями в разделе комментариев.
Оригинал: “https://dev.to/aux4/stop-using-npm-publish-2ibc”