15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать
18.10.2024

Как установить Node.js: полное техническое руководство для всех платформ

Node.js — это кроссплатформенная среда выполнения JavaScript с открытым исходным кодом, построенная на движке V8 от Chrome, которая выполняет JavaScript-код вне браузерной среды. Её неблокирующая, событийно-ориентированная модель ввода-вывода делает её доминирующим выбором для создания высокопроизводительных API, приложений реального времени, микросервисов и серверного инструментария. Правильная установка Node.js — с использованием подходящего метода для вашей ОС и рабочего процесса — является основой стабильной, воспроизводимой среды разработки.

Это руководство охватывает все основные способы установки: официальные установщики, встроенные менеджеры пакетов ОС, бинарные дистрибутивы NodeSource и nvm (Node Version Manager). В нём также рассматриваются управление версиями, работа с глобальными пакетами и особенности производственных серверов, которые большинство руководств полностью игнорируют.

Выбор правильного метода установки

Прежде чем выполнять какую-либо команду, разберитесь, что именно даёт каждый метод — поскольку неправильный выбор создаёт реальные операционные проблемы в дальнейшем.

МетодЛучше всего подходит дляГибкость версийТребуются права rootПримечания
Официальный установщик `.pkg` / `.msi`Быстрая локальная настройка, начинающие пользователиТолько одна версияДаЗагрязняет системный PATH; сложно переключать версии
Менеджер пакетов ОС (`apt`, `brew`, `yum`)Общесистемные установки, CI-серверыОграниченнаяДаЧасто поставляет устаревшие версии
Бинарный репозиторий NodeSourceLinux-серверы, предсказуемая привязка к LTSНа каждую установкуДаПоддерживается NodeSource; хорошо подходит для продакшена
`nvm` (Node Version Manager)Разработка нескольких проектовПолная, на уровне оболочкиНетЗолотой стандарт для рабочих станций разработчиков
`fnm` (Fast Node Manager)CI-пайплайны, чувствительные к производительностиПолнаяНетНаписан на Rust, значительно быстрее nvm
Docker / образ контейнераИзолированные, воспроизводимые сборкиПолная, на уровне контейнераЗависит от ситуацииЛучший вариант для микросервисов и CI/CD

Ключевое правило выбора: На рабочей станции разработчика всегда используйте nvm или fnm. На производственном Linux-сервере используйте репозиторий NodeSource или образ контейнера. Никогда не используйте пакет Node.js из стандартного менеджера пакетов ОС на Ubuntu/Debian — он регулярно поставляет версии, отстающие от текущего LTS на годы.

Установка Node.js на Linux

Linux — это платформа, на которой фактически выполняется большинство производственных нагрузок Node.js. Здесь правильная настройка важнее, чем где-либо ещё. Если вы выполняете развёртывание в среде VPS Хостинг, следующие методы применимы непосредственно к вашему удалённому серверу.

Метод 1: Бинарные дистрибутивы NodeSource (рекомендуется для серверов)

NodeSource поддерживает актуальные, подписанные пакеты .deb и .rpm, которые точно отслеживают ветки выпусков Node.js LTS и Current. Это наиболее надёжный подход для производственных Linux-серверов.

Ubuntu / Debian:

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

Fedora / CentOS / RHEL / Rocky Linux:

curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash -
sudo yum install -y nodejs

После установки проверьте как среду выполнения, так и встроенный менеджер пакетов:

node -v
npm -v

Критическая ошибка: Шаблон curl | bash выполняет удалённый скрипт от имени root. В средах с повышенными требованиями к безопасности сначала загрузите скрипт, проверьте его, а затем выполните:

curl -fsSL https://deb.nodesource.com/setup_lts.x -o nodesource_setup.sh
less nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt-get install -y nodejs

Метод 2: nvm — Node Version Manager (рекомендуется для разработчиков)

nvm устанавливает Node.js полностью в вашем домашнем каталоге (~/.nvm), не требует sudo и позволяет переключать версии для каждого проекта или сеанса оболочки. Это правильный инструмент для любой рабочей станции или многопользовательского сервера, где разным приложениям требуются разные версии Node.js.

Установка nvm:

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

Установщик добавляет необходимую инициализацию оболочки в ~/.bashrc, ~/.zshrc или ~/.profile. Перезагрузите оболочку:

source ~/.bashrc

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

nvm install --lts

Установка конкретной версии по номеру:

nvm install 20.14.0

Переключение между установленными версиями:

nvm use 18
nvm use 20

Установка постоянной версии по умолчанию для новых сеансов оболочки:

nvm alias default 20

Список всех локально установленных версий:

nvm ls

Проверка активной версии:

node -v
npm -v

Особый случай — файлы .nvmrc: Поместите файл .nvmrc в корень вашего проекта, содержащий только строку версии (например, 20.14.0). Запуск nvm use внутри этого каталога автоматически выбирает правильную версию. Это необходимо для командных сред, где расхождение версий вызывает трудноуловимые ошибки.

echo "20.14.0" > .nvmrc
nvm use

Метод 3: Системный менеджер пакетов (допустимо для инструментария, но не для продакшена)

Стандартные репозитории apt или dnf поставляют версии Node.js, которые нередко устарели. Используйте это только для некритичного инструментария:

sudo apt-get update
sudo apt-get install -y nodejs npm

На Fedora / RHEL 9+:

sudo dnf install nodejs

Установка Node.js на macOS

Метод 1: Homebrew (рекомендуется)

Homebrew — де-факто менеджер пакетов для сред разработки на macOS. Если Homebrew ещё не установлен, следуйте инструкциям на brew.sh.

brew install node

Для установки конкретной мажорной версии (например, Node.js 20 LTS):

brew install node@20
brew link --overwrite node@20

Проверка:

node -v
npm -v

Подводный камень Homebrew: brew upgrade node выполнит обновление до последней версии, что может нарушить работу проектов, привязанных к более старому релизу. Если вы управляете несколькими проектами, используйте nvm и на macOS — рабочий процесс идентичен Linux.

Метод 2: nvm на macOS

Команды установки и использования nvm идентичны Linux. Пользователям macOS с Zsh (по умолчанию начиная с Catalina) следует убедиться, что ~/.zshrc содержит блок инициализации nvm после установки:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"

Метод 3: Официальный установщик .pkg

Загрузите установщик .pkg с nodejs.org, запустите его и следуйте инструкциям мастера. Это самый простой путь для пользователей, которым нужна одна версия Node.js и которые не планируют переключаться. После установки откройте Terminal и подтвердите:

node -v
npm -v

Установка Node.js на Windows

Метод 1: Официальный установщик .msi

Загрузите установщик Windows (.msi) с nodejs.org. Выберите сборку LTS для работы, близкой к продакшену, или Current для экспериментов с новейшими функциями. Установщик автоматически регистрирует Node.js в системном PATH.

После установки откройте командную строку или PowerShell и проверьте:

node -v
npm -v

Важно: В процессе работы мастера установки есть необязательный шаг для установки Chocolatey и инструментов сборки для нативных модулей (аддонов C++). Включите его, если зависимости вашего проекта включают пакеты типа bcrypt, sharp или модули, зависящие от node-gyp. Пропуск этого шага приводит к непонятным ошибкам сборки в дальнейшем.

Метод 2: Chocolatey

Chocolatey — менеджер пакетов для Windows, обеспечивающий скриптовые, воспроизводимые установки, что ценно при подготовке машин разработчиков.

Откройте командную строку или PowerShell с повышенными привилегиями (от имени администратора):

choco install nodejs-lts

Проверка:

node -v
npm -v

Метод 3: nvm-windows

Обратите внимание, что nvm для Linux/macOS не работает на Windows. Эквивалентом для Windows является nvm-windows — отдельный проект со схожим интерфейсом.

Загрузите установщик со страницы релизов nvm-windows на GitHub. После установки:

nvm install lts
nvm use lts
node -v

Windows Subsystem for Linux (WSL2): Разработчикам, серьёзно работающим с Node.js на Windows, настоятельно рекомендуется рассмотреть WSL2 с Ubuntu. Внутри WSL2 установка Linux nvm работает идентично нативному Linux, а опыт разработки значительно более согласован с производственными серверными средами.

Понимание LTS и Current: какую версию устанавливать

Node.js следует предсказуемому расписанию выпусков, которое напрямую влияет на то, какую версию следует развёртывать.

Тип релизаПериодичностьСрок поддержкиСценарий использования
**LTS (Long Term Support)**Чётные мажорные версии (18, 20, 22)30 месяцев всего (12 активная + 18 техническое обслуживание)Производственные приложения, корпоративные нагрузки
**Current**Нечётные мажорные версии (19, 21, 23)Только 6 месяцевТестирование функций, авторы библиотек
**Maintenance LTS**Устаревающие LTS-релизыТолько исправления безопасностиУстаревшие системы в процессе миграции

Практическое правило: Всегда развёртывайте LTS в продакшене. Используйте Current только в изолированных средах разработки, когда вам нужно протестировать совместимость с предстоящими функциями Node.js.

Поддержание Node.js в актуальном состоянии

Устаревшие версии Node.js подвергают ваше приложение известным уязвимостям движка V8, устаревшим конфигурациям TLS и нарушенной совместимости зависимостей. Относитесь к обновлениям Node.js как к обслуживанию безопасности, а не к необязательным улучшениям.

С nvm (все платформы):

nvm install --lts
nvm reinstall-packages <old-version>
nvm alias default node

Команда nvm reinstall-packages переносит глобально установленные пакеты со старой версии на новую — деталь, которую большинство руководств упускает и которая экономит значительное время.

С NodeSource на Debian/Ubuntu:

sudo apt-get update && sudo apt-get upgrade nodejs

С Homebrew на macOS:

brew update && brew upgrade node

С Chocolatey на Windows:

choco upgrade nodejs-lts

Управление глобальными пакетами npm

Глобальные пакеты npm устанавливают CLI-инструменты, доступные во всей системе. Держите список глобальных установок минимальным — инструменты, специфичные для проекта, должны находиться в devDependencies, а не в глобальных установках, чтобы обеспечить воспроизводимые сборки в разных средах.

Установка глобального пакета:

npm install -g yarn
npm install -g pm2
npm install -g typescript

Список всех глобально установленных пакетов:

npm list -g --depth=0

Удаление глобального пакета:

npm uninstall -g yarn

Распространённые глобальные пакеты, актуальные для продакшена:

    pm2 — менеджер процессов для приложений Node.js; обеспечивает кластеризацию, автоматический перезапуск и управление журналами на Linux-серверах
    typescript — компилятор TypeScript (tsc)
    nodemon — инструмент отслеживания файлов для разработки, автоматически перезапускающий процесс Node.js при изменении кода
    dotenv-cli — загружает файлы .env для конфигурации, специфичной для среды
    
    nvm и глобальные пакеты: При переключении версий Node.js с помощью nvm глобальные пакеты, установленные в предыдущей версии, автоматически недоступны. Либо переустановите их, либо используйте nvm reinstall-packages <previous-version> для их переноса.
    После установки: настройка npm для производственных сред
    Чистая установка Node.js требует нескольких дополнительных шагов настройки, прежде чем она будет готова к продакшену.
    Установка реестра npm (необязательно, для частных реестров или зеркал):
    npm config set registry https://registry.npmjs.org/
    Настройка каталога кэша npm (актуально на серверах с ограниченным пространством /tmp):
    npm config set cache /path/to/custom/cache
    Отключение генерации package-lock.json (только если ваша команда использует исключительно yarn.lock):
    npm config set package-lock false
    Установка переменной среды Node.js для продакшена:
    export NODE_ENV=production
    Добавьте это в /etc/environment или файл юнита systemd вашего приложения на Linux-серверах, чтобы гарантировать активацию производственных оптимизаций в Express.js, Next.js и других фреймворках.
    Если вы запускаете приложения Node.js на Выделенном сервере, настройте pm2 как службу systemd, чтобы гарантировать перезапуск вашего приложения после перезагрузок:
    pm2 start app.js --name "my-app"
    pm2 startup systemd
    pm2 save
    Запуск Node.js за обратным прокси
    На производственных серверах приложения Node.js никогда не должны быть напрямую доступны на порту 80 или 443. Используйте Nginx или Apache в качестве обратного прокси и завершайте TLS на уровне прокси. Это критически важное архитектурное решение, которое непосредственно обеспечивается шагом установки.
    Минимальная конфигурация Nginx для приложения Node.js, работающего на порту 3000:
    server {
        listen 80;
        server_name yourdomain.com;
    
        location / {
            proxy_pass http://127.0.0.1:3000;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
        }
    }
    Дополните это действительным TLS-сертификатом. SSL-сертификаты необходимы для любого приложения Node.js, обрабатывающего пользовательские данные, токены аутентификации или API-запросы — это не опция. Let’s Encrypt через certbot является стандартным бесплатным вариантом; коммерческие сертификаты подходят для корпоративных развёртываний.
    Node.js на общем хостинге и VPS
    Вопрос, который возникает часто: может ли Node.js работать на общем хостинге?
    Стандартные среды Общего веб-хостинга не поддерживают Node.js в каком-либо значимом смысле. Общий хостинг предназначен для PHP-приложений и не предоставляет доступ к оболочке, постоянное управление процессами или возможность привязки к пользовательским портам — всё это требуется Node.js.
    Для любого реального развёртывания Node.js вам нужен как минимум план VPS Хостинга. VPS предоставляет root-доступ, постоянный менеджер процессов, такой как pm2, и полный контроль над версией Node.js и конфигурацией среды выполнения. Если вам нужна управляемая панель управления вместе со средой Node.js, VPS с cPanel обеспечивает промежуточный вариант между чистым доступом к VPS и управляемым хостингом.
    Для вычислительно-интенсивных нагрузок Node.js — вывода моделей машинного обучения, транскодирования видео или крупномасштабной обработки данных — стандартного VPS может быть недостаточно. GPU Хостинг обеспечивает аппаратное ускорение, которого процессы Node.js, ограниченные CPU, не могут достичь самостоятельно.
    Технический контрольный список ключевых выводов
    Используйте это как контрольный список перед развёртыванием:
    
    Выбор версии: убедитесь, что вы используете активный LTS-релиз (node -v должна возвращать чётный мажорный номер в активном окне поддержки)
    Метод установки соответствует среде: nvm на машинах разработчиков; NodeSource или контейнер на серверах
    Версия npm актуальна: запустите npm install -g npm@latest после установки Node.js — встроенный npm часто не является последним
    NODE_ENV установлена: убедитесь, что echo $NODE_ENV возвращает production во всех серверных средах
    Менеджер процессов настроен: pm2 list показывает работающее приложение и выполнена команда pm2 startup
  • Обратный прокси настроен: Node.js не доступен напрямую на порту 80/443
  • TLS завершается на прокси: действительный сертификат установлен и перенаправления HTTPS применяются
  • Список глобальных пакетов минимален: npm list -g --depth=0 показывает только необходимые CLI-инструменты
  • .nvmrc зафиксирован в репозитории: обеспечивает использование одной и той же версии Node.js всеми членами команды и CI-пайплайнами
  • Обновления безопасности автоматизированы: задание cron или CI-пайплайн ежемесячно проверяет наличие новых LTS-патчей
  • Часто задаваемые вопросы

    В чём разница между Node.js LTS и Current и какую из них следует устанавливать?

    LTS (Long Term Support) — это релизы с чётными мажорными номерами (18, 20, 22), поддерживаемые в течение 30 месяцев с патчами безопасности и стабильности. Релизы Current — это нечётные мажорные версии, поддерживаемые только 6 месяцев. Устанавливайте LTS для любой производственной или командной разработки. Используйте Current только для краткосрочных экспериментов с функциями.

    Почему nvm показывает «command not found» после установки?

    Установщик nvm добавляет код инициализации в RC-файл вашей оболочки (~/.bashrc или ~/.zshrc), но текущий сеанс терминала не перезагрузил его. Выполните source ~/.bashrc (или source ~/.zshrc для Zsh) или откройте новое окно терминала. Если проблема сохраняется, вручную убедитесь, что блок инициализации nvm существует в конце вашего RC-файла.

    Можно ли одновременно запускать несколько версий Node.js на одном сервере?

    Да, с помощью nvm. Каждая версия устанавливается в собственный каталог в ~/.nvm/versions/. Вы можете переключать активную версию для каждого сеанса оболочки с помощью nvm use <version> или для каждого проекта с помощью файла .nvmrc. Различные процессы, работающие с разными версиями Node.js, могут сосуществовать без конфликтов.

    Почему не следует устанавливать Node.js из стандартного репозитория apt Ubuntu/Debian?

    Стандартные репозитории Ubuntu и Debian поставляют версии Node.js, которые нередко отстают от текущего LTS на два-четыре мажорных версии. Например, Ubuntu 22.04 по умолчанию поставляет Node.js 12 — версию, достигшую конца жизненного цикла в 2022 году. Всегда используйте репозиторий NodeSource или nvm для получения поддерживаемого актуального релиза.

    Как полностью удалить Node.js и начать заново?

    Метод зависит от способа установки. Для установок через NodeSource: sudo apt-get remove nodejs && sudo apt-get autoremove. Для nvm: nvm uninstall <version> для конкретных версий или полностью удалите каталог ~/.nvm и удалите строки инициализации из RC-файла. Для Homebrew: brew uninstall node. Для официального установщика на macOS/Windows используйте стандартный деинсталлятор приложений системы и вручную удалите все остаточные каталоги в /usr/local/lib/node_modules или %AppData%npm.

    15%

    Сэкономьте 15% на всех хостинговых услугах

    Проверьте свои навыки и получите скидку на любой тарифный план

    Используйте код:

    Skills
    Начать