Стабильные релизы Node.js: что такое LTS и как их использовать

Раздел: Backend -> Node.js (базовый)

Версии Node.js LTS: выбор, установка и управление

Node.js с долгосрочной поддержкой (LTS) обеспечивает стабильность и предсказуемость для серверных приложений. Правильный выбор версии и инструментов управления позволяет избежать конфликтов зависимостей и упростить развёртывание. Рассмотрим основные подходы к работе с LTS.

Какое решение является самым надёжным для управления версиями Node.js LTS?

nvm (Node Version Manager) - наиболее распространённый и гибкий инструмент. Он позволяет устанавливать, переключать и удалять версии Node.js, включая LTS, из командной строки. Работает на Unix-подобных системах и в WSL.

Установка nvm выполняется одной командой:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

Node js https (https в node.js)

После перезапуска терминала проверяется доступность:

command -v nvm

Node js lts (версия node.js lts)

Установка последней LTS версии:

nvm install --lts

Node js npm (менеджер пакетов npm в node.js)

Переключение на LTS в текущей сессии:

nvm use --lts

Node js scripts (скрипты node.js)

Просмотр установленных LTS версий:

nvm ls

Типичная ошибка: После установки nvm команда не распознаётся. Решение - проверить, что файл конфигурации оболочки загружен (source ~/.bashrc или перезапустить терминал). Ещё одна проблема - права доступа при глобальной установке пакетов. Рекомендуется использовать nvm для каждой версии, чтобы избежать конфликтов.

Как установить LTS версию Node.js без дополнительных инструментов?

Официальный установщик с сайта nodejs.org подходит для быстрой установки на Windows, macOS и Linux. Пользователь скачивает пакет, соответствующий своей системе, и запускает инсталляцию.

Пример для Ubuntu через официальный PPA:

curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs

Цель: минимальная настройка, если не требуется частая смена версий. Подходит для изолированных сред или обучения.

Ошибки: Установка глобальных пакетов может потребовать прав суперпользователя. При обновлении версии приходится переустанавливать все глобальные зависимости. Для Windows возможно конфликт с окружением PATH.

Как переключаться между версиями Node.js с помощью n?

Инструмент n от TJ Holowaychuk - легковесная альтернатива nvm. Устанавливается через npm:

npm install -g n

Установка последней LTS:

n lts

Переключение на LTS:

n use lts

Цель: простая установка для разработчиков, уже имеющих npm. Не требует изменения shell rc-файлов.

Проблема: n хранит версии в системной директории, что может вызвать конфликты с правами. Решение - настроить каталог для версий через переменную N_PREFIX. Также n не поддерживает .nvmrc файлы “из коробки”.

Как управлять версиями Node.js с высокой производительностью с помощью fnm?

Fast Node Manager (fnm) написан на Rust и быстрее аналогов. Установка через скрипт:

curl -fsSL https://fnm.vercel.app/install | bash

Или через пакетный менеджер на Windows (winget, scoop). Установка LTS:

fnm install --lts

Использование LTS:

fnm use lts-latest

Цель: быстродействие и кроссплатформенность. Подходит для CI/CD и больших команд.

Ошибки: При установке на Windows без прав администратора может потребоваться настройка переменной PATH вручную. Также fnm автоматически не переключает версию при входе в проект - требуется настройка .fnmrc или интеграция с оболочкой.

Расширенные примеры работы с LTS версиями Node.js

Ниже приведены сценарии, которые помогут эффективно использовать LTS в реальных проектах.

Автоматический выбор версии через .nvmrc

Создайте файл .nvmrc в корне проекта с указанием LTS:

Пример
echo "lts/*" > .nvmrc

При входе в директорию выполните:

Пример
nvm use

Результат:

Found '/path/to/project/.nvmrc' with version 
Now using node v20.11.0 (npm v10.2.4)

Для автоматической смены при каждом cd добавьте в .bashrc:

Пример
cd() { builtin cd "$@" && nvm use --silent; }

Установка нескольких LTS версий и сравнение

Установите Node 18 и 20 LTS:

Пример
nvm install 18
nvm install 20

Проверьте работу модуля на разных версиях (пример с fs):

Пример
nvm run 18 -e "console.log(require('fs').existsSync);"
nvm run 20 -e "console.log(require('fs').existsSync);"

Результат:

[Function: existsSync]
[Function: existsSync]

Обратите внимание, что различия могут быть в API, например, в стабильности экспериментальных функций.

Обновление nvm до последней версии и управление LTS

Обновление через git:

Пример
cd "$NVM_DIR"
git pull origin master
. "$NVM_DIR/nvm.sh"

После обновления проверьте список доступных LTS:

Пример
nvm ls-remote --lts

Пример вывода:

v18.20.4 (LTS: Hydrogen)
v20.15.1 (LTS: Iron)
...

Использование fnm в CI окружении (GitHub Actions)

Пример .yml:

Пример
name: Node LTS
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 'lts/*'
      - run: node -v
      - run: npm ci
      - run: npm test

Результат:

Run node -v
v20.15.1

Проверка совместимости проекта с разными LTS версиями

Скрипт для автоматического тестирования:

Пример
#!/bin/bash
versions=("18" "20")
for ver in "${versions[@]}"; do
  echo "Testing with Node $ver"
  nvm use $ver
  npm test
done

Вывод может содержать ошибки, если зависимости не поддерживают версию.

Установка LTS из исходного кода (для систем без менеджера)

На сервере с ограниченными правами можно скачать бинарную сборку LTS напрямую:

Пример
wget https://nodejs.org/dist/v20.15.1/node-v20.15.1-linux-x64.tar.xz
tar -xf node-v20.15.1-linux-x64.tar.xz
sudo mv node-v20.15.1-linux-x64 /usr/local/node
sudo ln -sf /usr/local/node/bin/node /usr/bin/node
sudo ln -sf /usr/local/node/bin/npm /usr/bin/npm

Проверка:

Пример
node -v
v20.15.1

Обратите внимание, что такой метод не поддерживает автоматические обновления.

Версия Node.js LTS - comments

En
Node js lts (javascript)