Engine-version — npm пакет, который позволит задать корректное окружение разработки

от автора

Некоторые проекты зачастую требуют специфичные версии локально установленных программ. Это может быть как определенная версия node.js или npm (например, npm@7 с поддержкой workspaces), так и определенная база данных, менеджер пакетов и другие утилиты, которые нельзя установить из npm. Зачастую команды фиксирую версии в чатиках, readme или вики.

npm позволяет задекларировать в package.json файле необходимые версии node и npm, но никак не проверяет их. Чтобы исправить это и расширить список инструментов был написан небольшой npm пакет engine-version. Пакет работает очень просто: сначала он считывает описание необходимого софта из package.json, а затем смотрит установлена ли программа и совпадает ли установленная версия описанной. И если проверки прошли неудачно, отображается список ошибок.

Чтобы начать пользоваться пакетом нужно сначала установить пакет из npm:

npm install --save-dev engine-version

Описать список необходиммых инструментов в package.json (формат описания):

{   ...   "engines": {     "node": ">=16.0.0",     "npm": "~7.0.0",     "mysql": "*"   },   ... }

Добавить скрипт запускающий проверку в package.json, например, перед процессом сборки пакета:

{   ...   "scripts": {     "prebuild": "engine-version",     "build": "my_build_script"   },   ... }   

Дальше планируется сделать:

  • Сделать ошибки более информативными

  • Возможность конфигурирования при помощи аргументов (предупреждения вместо ошибок)

  • Добавить альтернативные виды проверки версий для популярных программ, не понимающих аргумент —version (сейчас проверка установленной версии выполняется вызовом программы с опцией —version в дочернем процессе)

ссылка на оригинал статьи https://habr.com/ru/post/527008/


Комментарии

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *