Как узнать версию Node.js из кода: process.version и process.versions

Короткий ответ: внутри Node.js-кода используйте process.version. Эта переменная вернет строку с текущей версией Node.js, например v20.11.1. Если нужна более подробная информация о компонентах окружения, используйте process.versions

Запрос «как узнать версию node js из кода» отличается от обычного node -v. Команда node -v проверяет терминал, а process.version показывает версию внутри выполняемой программы. Это полезно, когда приложение работает на сервере, в контейнере, в CI или под менеджером процессов

Минимальный пример

Создайте файл version.js

console.log(process.version);

Запустите

node version.js

Ожидаемый вывод

v20.11.1

У вас версия может быть другой. Главное, что вывод начинается с v и совпадает с активной версией Node.js

Подробная информация через process.versions

Если нужно посмотреть не только Node.js, но и версии внутренних компонентов, используйте

console.log(process.versions);

Вывод будет объектом

{
  node: '20.11.1',
  v8: '11.3...',
  uv: '1...',
  openssl: '3...'
}

Такой вывод полезен при диагностике: иногда проблема связана не только с Node.js, но и с версией V8, OpenSSL или другого компонента

Как вывести версию красиво

Для логов можно сделать понятное сообщение

console.log(`Приложение запущено на Node.js ${process.version}`);

Или так

const nodeVersion = process.versions.node;

console.log(`Версия Node.js без буквы v: ${nodeVersion}`);

Разница простая: process.version обычно возвращает строку с v, а process.versions.node — номер без этой буквы

Как проверить минимальную версию

Иногда нужно остановить запуск, если версия слишком старая. Простой учебный пример

const majorVersion = Number(process.versions.node.split(".")[0]);

if (majorVersion < 18) {
  console.error("Нужна Node.js 18 или новее");
  process.exit(1);
}

console.log("Версия Node.js подходит");

Такой код не заменяет нормальную настройку engines в package.json, но помогает понять механику проверки

Как указать версию в package.json

В проекте можно добавить требование

{
  "engines": {
    "node": ">=18"
  }
}

Это не всегда автоматически блокирует запуск, но служит понятным сигналом для разработчиков, хостинга и инструментов

Когда версия из кода важнее node -v

node -v показывает версию в текущем терминале. Но приложение может запускаться другим способом: через Docker, PM2, systemd, CI-сборку или панель хостинга. В такой ситуации лог с process.version показывает, какая версия реально запустила приложение

Если локально node -v показывает 20, а в логах приложения process.version показывает 16, значит приложение запускается в другом окружении

Мини-практика

Создайте version.js, выведите process.version, затем выведите process.versions.node, затем добавьте проверку на минимальную версию. Запустите файл и посмотрите, чем отличаются эти значения

Если у вас установлен nvm, переключитесь на другую версию Node.js и запустите файл снова

Частые ошибки

Путают версию Node.js и версию npm Node.js проверяется через process.version, npm внутри обычного JS-кода так просто не нужен. npm — инструмент установки пакетов, а не среда выполнения программы

Смотрят node -v не в том окружении Если приложение работает на сервере или в контейнере, локальная версия может ничего не говорить о реальном запуске

Парсят версию слишком грубо Для серьезных проверок лучше использовать нормальную semver-логику, а не только первую цифру. Учебный пример выше нужен для понимания

Не выводят версию в логах Для диагностики полезно один раз выводить версию при старте приложения, особенно на сервере

Что почитать дальше по Node.js

Если нужен общий маршрут по теме, откройте рубрику Node.js. Для соседних задач пригодятся эти разборы:

Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x