5 minute read

Обновление на Windows

Поставить можно через скачивание msi и через chocolatey. Всегда берём LTS версию.

Проверка способа установки

🔍 Как проверить, установлен ли Node.js через Chocolatey на Windows:

  1. Открой PowerShell (с правами администратора)
  2. Введи команду:

    choco list --installed
    
  3. Найди в списке строку вроде:

    nodejs 18.19.1
    

    или

    nodejs-lts 18.18.0
    

    Если есть — значит Node.js установлен через Chocolatey.

💡 Дополнительно: Как узнать, где установлен node

Можно выполнить:

where node

Если путь будет вроде:

C:\ProgramData\chocolatey\bin\node.exe

то это — установка через Chocolatey.

Если путь типа:

C:\Program Files\nodejs\node.exe

то это, скорее всего, установка через официальный .msi.

💡 Есть ли разница между установкой через Chocolatey и официальный сайт?

Да, небольшая разница есть:

Установка Особенности
Официальный установщик (.msi) - Графический интерфейс- Устанавливается в C:\Program Files\nodejs\- Не управляется пакетным менеджером
Chocolatey (choco install nodejs) - Управляется через choco upgrade- Проще обновлять через терминал- Может устанавливаться в другую директорию- Удобен для автоматизации

⚙️ Как обновить Node.js через Chocolatey:

  1. Проверь текущую версию:

    node -v
    
  2. Обнови Node.js:

    choco upgrade nodejs -y
    

    Или, если ты использовал nodejs-lts:

    choco upgrade nodejs-lts -y
    

⚙️ Обновление через msi

Раз node.exe находится в C:\Program Files\nodejs\, значит Node.js установлен через официальный .msi-установщик, а не через Chocolatey.

✅ Как обновить Node.js, установленный через .msi

  1. Перейди на официальный сайт Node.js: https://nodejs.org/
  2. Скачай установщик:
    • Выбери нужную версию:
      • LTS (рекомендуется для большинства пользователей)
      • или Current (если тебе нужна самая последняя версия)
    • Это будет файл вроде node-v20.11.0-x64.msi
  3. Запусти .msiустановщик:
    • Установщик сам обнаружит старую версию и обновит её поверх.
    • Все пути, переменные окружения и npm тоже обновятся автоматически.
    • Перезагрузка не нужна.
  4. После установки — проверь версии:

    node -v
    npm -v
    

💡 Альтернатива: установка через nvm-windows (если хочешь управлять версиями)

Если ты когда-то захочешь использовать несколько версий Node.js (например, 16, 18 и 20), рекомендую установить nvm-windows, который позволяет переключаться между ними в один клик.

Если npm не обновился

cmd as admin

npm install -g [email protected]
npm -v

Обновление на сервере

Все операции под sudo См. ссылку выше, там есть упоминание про первую установку не из под sudo

Остановка PM2

Обновление Node.js на сервере — стандартная операция, но она может временно затронуть работающие сервисы. Ниже — чёткий порядок действий, чтобы всё прошло безопасно:

Нужно ли останавливать Next.js/PM2?

Да, лучше временно остановить приложение через PM2, чтобы:

  • избежать ошибок исполнения во время обновления Node.js
  • потом перезапустить с уже новой версией Node.js

🔧 Шаги по обновлению Node.js с PM2 и Next.js:

  1. Останови приложение:

    pm2 stop quicklink-app
    
  2. Проверь список процессов, чтобы убедиться, что остановлено:

    pm2 ls
    
  3. Обнови Node.js (например, через n):

    sudo npm install -g n
    sudo n stable    # или конкретную версию, например: sudo n 18.19.1
    
  4. Проверь текущую версию Node.js:

    node -v
    
  5. Если нужно — пересобери зависимости проекта (иногда требуется):

    rm -rf node_modules
    npm install
    
  6. Запусти приложение обратно через PM2:

    pm2 start quicklink-app
    

    Если по какой-то причине процесс исчез:

    pm2 start --name=quicklink-app npm -- run start
    
  7. (Опционально) Сохрани конфигурацию PM2:

    pm2 save
    

Если ты используешь pm2 startup, чтобы процессы автозапускались после ребута, не забудь выполнить:

pm2 startup
pm2 save

Обновление через DNF

Если ты устанавливал Node.js через dnf, значит ты на Fedora / RHEL / CentOS. Обновление Node.js через dnf немного отличается от n или nvm. Вот как это делается корректно:

🔄 Обновление Node.js через DNF

  1. Проверь текущую установленную версию:

    node -v
    
  2. Проверь, какие версии Node.js доступны в репозитории:

    dnf module list nodejs
    

    Ты увидишь что-то вроде:

    Name      Stream   Profiles                          Summary
    nodejs    16       common [d], development, minimal   Javascript runtime
    nodejs    18       common [d], development, minimal   Javascript runtime
    nodejs    20       common [d], development, minimal   Javascript runtime
    
  3. Выключи текущий модуль (например, nodejs:16):

    
    sudo dnf module reset nodejs
    
  4. Включи нужный модуль (например, nodejs:20):

    sudo dnf module enable nodejs:20
    
  5. Установи обновлённый Node.js:

    sudo dnf install -y nodejs
    
  6. Проверь версию:

    node -v
    npm -v
    

📦 А как насчёт npm?

Да, при установке через DNF npm обновится автоматически вместе с Node.js, так как он включён в пакет nodejs. Но если тебе нужно обновить только npm отдельно, можно:

sudo npm install -g npm

Определение точной версии Nodejs в DNF

Когда ты смотришь список модулей в dnf, например:

nodejs 18
nodejs 20
nodejs 22

— там действительно не указано, LTS это или нет, и какая конкретно версия будет установлена (например, 18.18.2 или 20.11.1). Сейчас поясню, как всё это работает и как синхронизировать версии между Linux и Windows.

✅ Как понять, какая версия стоит за nodejs 18/20/22 в DNF

Ты можешь временно включить модуль и посмотреть, какая версия будет установлена, не устанавливая сам Node.js:

sudo dnf module enable nodejs:18 -y
dnf info nodejs

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

Name         : nodejs
Version      : 18.18.2
Release      : 1.module_el8+12345

Так ты узнаешь точную версию, которая ставится при nodejs:18.

📌 Какие версии являются LTS?

На официальном сайте Node.js можно найти расписание версий:

Node.js версия Тип поддержки Статус
18.x ✅ LTS (до апр. 2025) Active LTS
20.x ✅ LTS (до апр. 2026) Active LTS
22.x ❌ ещё не LTS Current (до октября 2025)

🎯 Как сделать одинаковую версию на Windows и сервере?

  1. Выбери конкретную версию, например 20.11.1 (последняя LTS):
    • На Windows — скачай .msi отсюда: 👉 https://nodejs.org/en/download/releases
    • На Linux (Fedora/RHEL):
      • Найди ближайший dnfмодуль, например nodejs:20
      • Посмотри, какую конкретную версию он ставит:
        sudo dnf module enable nodejs:20 -y
        dnf info nodejs
        
      • Если версия устраивает — ставь:
        sudo dnf install nodejs
        
  2. Если версии отличаются, и ты хочешь точное совпадение, можно использовать NodeSource на Linux:
curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -
sudo dnf install -y nodejs

NodeSource даёт самую последнюю LTS версию ветки 20.x (например, 20.11.1).

Ещё вариант обновления

Вариант лучше - обновление через NodeSource

Отлично, давай поставим конкретную версию Node.js (например, 20.11.1) через официальный источник — NodeSource. Это лучший способ, если хочешь, чтобы версия совпадала с той, что ты ставишь на Windows через .msi.

✅ Установка Node.js 20.x через NodeSource

Работает на CentOS, RHEL, Rocky, AlmaLinux, Fedora и других RPM-based системах.

1. Удали предыдущие версии Node.js (если нужно):

sudo dnf remove -y nodejs
sudo dnf module reset -y nodejs

2. Подключи NodeSource для нужной ветки (например, 20.x):

curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -

Это добавит репозиторий NodeSource и обновит метаданные.

3. Установи Node.js:

sudo dnf install -y nodejs

4. Проверь установленную версию:

node -v
npm -v

Например:

v20.11.1
10.2.3

📌 Что даёт NodeSource:

  • Устанавливает последнюю доступную версию в ветке (например, 20.11.1).
  • У тебя будет одна и та же версия, что и на Windows, если ты ставишь .msi с сайта nodejs.org.
  • npm тоже обновится вместе с Node.js.

Flow

# Vultr snapshot
node -v
npm -v

pm2 stop appname
pm2 list
# all apps should be stopped

curl -fsSL https://rpm.nodesource.com/setup_22.x | sudo bash -

node -v
npm -v

sudo su

cd /usr/share/nginx/domains/easy-embed-code.betteraveapps.com/public/extensions
sudo rm -rf node_modules
sudo npm install

cd ../app
sudo rm -rf node_modules
sudo npm install
sudo npx prisma generate
sudo npx prisma db push
sudo npm run build

sudo reboot

# Check health
# PM2 should start both processes
# svc should be running
# nginx should be running
# check in Shopify admin
# add another snapshot