Pull to refresh

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

Reading time1 min
Views7.6K

Некоторые проекты зачастую требуют специфичные версии локально установленных программ. Это может быть как определенная версия 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 в дочернем процессе)

Tags:
Hubs:
+5
Comments1

Articles