
Node.js скачать бесплатно и безопасно можно только на официальном сайте nodejs.org: там лежат установщик .msi для Windows, .pkg для macOS и архивы для Linux. Для работы берите ветку LTS, npm ставится вместе с Node.js. После установки откройте новый терминал и проверьте версии командами node -v и npm -v.
Что такое Node.js и npm
Node.js — среда выполнения JavaScript вне браузера. На ней работают серверные приложения, API, боты, сборщики фронтенда (Vite, webpack), линтеры и десятки утилит командной строки. Даже если вы пишете только вёрстку, Node.js почти наверняка понадобится, чтобы собрать проект или запустить локальный сервер разработки.
npm — менеджер пакетов, который входит в официальный дистрибутив. Отдельно «скачать npm» не нужно: установщик с nodejs.org кладёт рядом три команды — node (сама среда), npm (установка пакетов) и npx (запуск пакета без глобальной установки). Исключение — пакеты некоторых дистрибутивов Linux, где npm вынесен в отдельный пакет; об этом ниже.
Какую версию Node.js скачать: LTS или Current
На странице загрузки всегда две линии выпуска. Выбор между ними — главное решение перед установкой.
| Параметр | LTS (Long Term Support) | Current |
|---|---|---|
| Для кого | Рабочие проекты, серверы, обучение, CI | Проверка новых возможностей языка и API |
| Срок поддержки | Долгий: сначала активная поддержка, затем период только исправлений безопасности | Короткий: до выхода следующей линии |
| Совместимость пакетов | Максимальная — авторы библиотек тестируют прежде всего на LTS | Отдельные пакеты с нативными модулями могут не собраться |
| Как часто обновлять | Минорные и патч-версии внутри своей линии | Часто, с риском несовместимых изменений |
| Рекомендация | Ставить по умолчанию | Ставить второй версией через менеджер версий |
Какие номера сейчас имеют статус LTS, а какие уже сняты с поддержки, смотрите в таблице Node.js Releases: номера меняются каждый год, и конкретная цифра из любой статьи быстро устаревает. Если проект требует определённую версию (например, в package.json есть поле engines или в корне лежит файл .nvmrc), ставьте именно её — удобнее всего через nvm.
Где скачать Node.js: официальный сайт и проверка файла
Единственный первоисточник — nodejs.org/en/download. Там выбираются версия, операционная система и архитектура (x64 или ARM64), а сайт показывает прямую ссылку на установщик или готовую команду для менеджера версий. Зеркала и «сборки с торрентов» не нужны: дистрибутив бесплатный, а подменённый установщик — классический способ заразить машину разработчика.
Рядом с каждым выпуском лежит файл SHASUMS256.txt с контрольными суммами. Сверить скачанный файл можно так:
# Windows, cmd
certutil -hashfile node-v<версия>-x64.msi SHA256
# Windows, PowerShell
Get-FileHash .\node-v<версия>-x64.msi -Algorithm SHA256
# macOS
shasum -a 256 node-v<версия>.pkg
# Linux
sha256sum node-v<версия>-linux-x64.tar.xz
Хэш должен совпасть со строкой для этого файла в SHASUMS256.txt того же выпуска.
Как установить Node.js на Windows 10 и 11
Процедура для Windows 10 и Windows 11 одинаковая. Есть три рабочих способа — от самого простого к самому гибкому.
Официальный установщик .msi
- На nodejs.org скачайте Windows Installer (.msi) нужной архитектуры: для большинства ПК — x64, для ноутбуков на Snapdragon — ARM64.
- Запустите файл, примите лицензию и оставьте путь по умолчанию
C:\Program Files\nodejs\. - На шаге выбора компонентов не отключайте пункты npm и Add to PATH — именно он прописывает
nodeиnpmв переменную PATH. - На странице Tools for Native Modules галочку можно не ставить. Она запускает установку Chocolatey, Python и инструментов сборки Visual Studio — это нужно только для пакетов, которые компилируют нативный код. Если такой пакет встретится позже, инструменты можно поставить отдельно.
- Нажмите Install, подтвердите запрос контроля учётных записей и дождитесь окончания.
- Закройте все открытые окна терминала и откройте новое — старые окна не видят обновлённый PATH.
Через winget в PowerShell или cmd
В Windows 10 и 11 есть встроенный менеджер пакетов winget. Установка LTS одной командой:
winget search OpenJS.NodeJS
winget install OpenJS.NodeJS.LTS
Первая команда покажет доступные пакеты и их идентификаторы — сверьтесь с ней, прежде чем ставить. Обновление потом делается через winget upgrade OpenJS.NodeJS.LTS. Если вы только осваиваете консоль, пригодится наш разбор командной строки Windows.
ZIP-архив без установки
Для машины без прав администратора есть вариант Standalone Binary (.zip). Распакуйте его, например, в C:\Users\<имя>\node и добавьте эту папку в PATH пользователя: «Параметры» → «Система» → «О системе» → «Дополнительные параметры системы» → «Переменные среды» → «Path» → «Изменить» → «Создать». Такой Node.js не обновляется сам и не регистрируется в списке программ.
Как установить Node.js на macOS
На Mac три пути:
- Установщик .pkg с nodejs.org — двойной щелчок, стандартный мастер установки. Бинарники попадают в
/usr/local/bin. - Homebrew:
brew install nodeставит последнюю версию из формулы Homebrew — это не обязательно LTS. Формулы видаnode@<номер>ставят конкретную линию, но не добавляются в PATH автоматически: команду для этого Homebrew печатает в конце установки. - nvm — если нужно держать несколько версий под разные проекты (подробно ниже). Это самый удобный вариант для разработчика.
Не смешивайте способы: если Node.js стоит и из .pkg, и через Homebrew, и через nvm, команда node будет вести туда, что стоит первым в PATH. Проверить, какой бинарник реально запускается, можно командой which -a node.
Как установить Node.js на Ubuntu и другой Linux
Пакет из репозитория дистрибутива
sudo apt update
sudo apt install nodejs npm
node -v
Это быстро, но версия в стандартных репозиториях Ubuntu и Debian обычно отстаёт от актуальной LTS, а npm идёт отдельным пакетом. Для учебного проекта хватит, для современного фреймворка — часто нет: сборка упадёт с требованием более новой версии.
Репозиторий NodeSource
Проект NodeSource публикует пакеты с актуальными линиями Node.js для Debian, Ubuntu и RHEL-подобных систем. Для Debian/Ubuntu установка LTS выглядит так:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs
node -v
npm -v
Этот пакет уже содержит npm. Перед запуском любого скрипта через curl | bash стоит открыть его в браузере и убедиться, что он делает именно то, что обещает, — это общее правило для серверов.
Для Arch, Fedora и других дистрибутивов Node.js есть в штатных репозиториях (pacman -S nodejs npm, dnf install nodejs). Если вы собираете рабочее окружение с нуля, посмотрите заодно, как установить Git — он понадобится для клонирования проектов и для самой установки nvm вручную.
nvm: как установить несколько версий Node.js
nvm (Node Version Manager) — менеджер версий: ставит любые версии Node.js в домашний каталог пользователя и переключает их одной командой. Он решает сразу две проблемы: разные проекты требуют разных версий, и глобальные пакеты больше не требуют sudo. Важно: для Windows это отдельный проект с похожими, но не одинаковыми командами.
nvm на macOS и Linux
Команду установки копируйте из README репозитория nvm-sh/nvm — в ней указан номер актуальной версии скрипта. Она выглядит так:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.8/install.sh | bash
Скрипт допишет загрузку nvm в ~/.bashrc, ~/.zshrc или ~/.profile. Закройте и снова откройте терминал, затем:
command -v nvm # должно вывести: nvm
nvm ls-remote --lts # список LTS-версий
nvm install --lts # поставить последнюю LTS
nvm use --lts # переключиться на неё
nvm alias default 'lts/*' # использовать LTS в новых терминалах
nvm ls # что установлено локально
nvm current # какая версия активна сейчас
Если в корне проекта лежит файл .nvmrc с номером версии, достаточно выполнить nvm install и nvm use без аргументов — nvm прочитает версию из файла.
nvm-windows
Для Windows используется отдельный проект nvm-windows. Перед его установкой удалите Node.js, поставленный через .msi («Параметры» → «Приложения» → «Установленные приложения» → Node.js → «Удалить»), иначе две установки будут конфликтовать за PATH. Затем скачайте из раздела Releases установщик *-setup.exe для своей архитектуры (x64 или arm64) и выполните в новом окне терминала:
nvm version
nvm list available
nvm install lts
nvm list
nvm use <версия из nvm list>
node -v
В nvm-windows 2.x права администратора не нужны: по умолчанию версии переключаются через шимы, без символических ссылок в системном каталоге. Сам установщик запускайте от своей учётной записи, а не от имени администратора. Ссылка и права администратора требовались версиям 1.x.
Сравнение способов установки:
| Способ | ОС | Несколько версий | Нужны права администратора | Когда выбирать |
|---|---|---|---|---|
| Установщик .msi / .pkg | Windows, macOS | Нет | Да | Один компьютер, одна версия, быстрый старт |
| winget | Windows | Нет | Да | Установка и обновление из консоли, скрипты настройки ПК |
| Homebrew | macOS | Ограниченно | Нет | Если остальные инструменты тоже из brew |
| NodeSource / пакет дистрибутива | Linux | Нет | Да | Серверы: одна системная версия для всех пользователей и сервисов |
| nvm / nvm-windows | Все | Да | Нет (nvm-windows 2.x — тоже нет) | Рабочая машина разработчика с несколькими проектами |
Как проверить, установлен ли Node.js
Откройте новый терминал и выполните:
node -v
npm -v
npx -v
Каждая команда должна вывести номер версии, например v… для node. Чтобы узнать, откуда запускается node, используйте:
# cmd
where node
# PowerShell
Get-Command node
# macOS / Linux
which node
Если where node показывает два пути, значит, Node.js установлен дважды (например, через .msi и через nvm-windows) — удалите лишнюю копию. Быстрая проверка, что среда реально исполняет код: node -e "console.log(process.version, process.platform, process.arch)".
Как установить Node.js в VS Code
В VS Code Node.js отдельно не устанавливается: редактор использует тот Node.js, что стоит в системе. Порядок такой: поставить Node.js любым способом выше, полностью закрыть VS Code и открыть заново, затем открыть встроенный терминал (меню Terminal → New Terminal или Ctrl+`) и выполнить node -v. Если в терминале VS Code команда не находится, а в обычном — находится, значит, редактор был открыт до установки и держит старую копию PATH; перезапуск это лечит. Запуск и отладка файлов (node app.js, F5) работают с тем же системным Node.js.
Как обновить Node.js и npm
- Установщик .msi / .pkg: скачайте новую версию и установите поверх — старая будет заменена.
- winget:
winget upgrade OpenJS.NodeJS.LTS. - Homebrew:
brew update && brew upgrade node. - nvm:
nvm install --reinstall-packages-from=current 'lts/*'поставит новую LTS и перенесёт глобальные пакеты. - nvm-windows:
nvm install lts, затемnvm useна новую версию; глобальные пакеты придётся поставить заново. - Только npm:
npm install -g npm@latest. При установке через .msi это нужно делать из терминала администратора, потому что npm лежит вC:\Program Files\nodejs\.
После смены мажорной версии удалите в проекте node_modules и выполните npm ci (или npm install, если нет package-lock.json): нативные модули собраны под конкретную версию и со старой сборкой падают с ошибкой вида was compiled against a different Node.js version.
Частые ошибки при установке Node.js
«node» не является внутренней или внешней командой
Полный текст: "node" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. В PowerShell то же самое звучит как Имя "node" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Причина одна — каталога с node.exe нет в PATH текущего окна.
- Закройте все окна терминала и редактора и откройте заново. В большинстве случаев этого достаточно.
- Проверьте, что файл существует:
dir "C:\Program Files\nodejs\node.exe". - Посмотрите PATH:
echo %PATH%в cmd или$env:Path -split ';'в PowerShell. Там должен бытьC:\Program Files\nodejs\. - Если строки нет — запустите установщик .msi ещё раз, выберите Repair или добавьте путь вручную через «Переменные среды».
npm.ps1: выполнение сценариев отключено в этой системе
В PowerShell команда npm вызывает скрипт npm.ps1, а политика выполнения по умолчанию на клиентских Windows запрещает скрипты. Сообщение: Невозможно загрузить файл C:\Program Files\nodejs\npm.ps1, так как выполнение сценариев отключено в этой системе. Варианты: пользоваться cmd, вызывать npm.cmd вместо npm или разрешить подписанные и локальные скрипты для своей учётной записи:
Get-ExecutionPolicy -List
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
Политика меняется только для текущего пользователя и не требует прав администратора.
EACCES при npm install -g на Linux и macOS
Ошибка EACCES: permission denied при глобальной установке означает, что npm пытается писать в системный каталог (npm config get prefix покажет, в какой). Лечить через sudo npm install -g не нужно: пакет получит права root, а его установочные скрипты выполнятся от root. Правильные варианты — перейти на nvm или сменить каталог глобальных пакетов, как советует документация npm:
mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.profile
source ~/.profile
Список уже установленных глобальных пакетов — npm ls -g --depth=0. Многие утилиты вообще не нужно ставить глобально: npx <пакет> скачает и запустит их на один раз.
Node.js на сервере сайта: прокси, процесс-менеджер и 502
Установить Node.js на VPS — половина дела. Приложение, запущенное командой node server.js в SSH-сессии, умрёт вместе с сессией, не поднимется после перезагрузки и будет висеть на порту 3000 без HTTPS. Рабочая схема из трёх частей:
- Системная версия Node.js. На сервере удобнее NodeSource или пакет дистрибутива: nvm ставит Node.js в домашний каталог одного пользователя, и systemd-сервис от другого пользователя его не найдёт.
- Процесс-менеджер, который перезапускает упавшее приложение и стартует его при загрузке системы. Это либо systemd, либо pm2.
- Обратный прокси — nginx принимает запросы на 80/443, завершает TLS и передаёт их приложению на локальный порт. Как это устроено, подробно разобрано в статье про обратный прокси.
Минимальный unit-файл systemd, например /etc/systemd/system/myapp.service:
[Unit]
Description=My Node.js app
After=network.target
[Service]
Type=simple
User=myapp
WorkingDirectory=/srv/myapp
Environment=NODE_ENV=production
Environment=PORT=3000
ExecStart=/usr/bin/node server.js
Restart=on-failure
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now myapp
sudo systemctl status myapp
journalctl -u myapp -n 50
Путь в ExecStart должен совпадать с выводом which node. Тот же результат через pm2: pm2 start server.js --name myapp, затем pm2 startup (команда напечатает строку, которую нужно выполнить через sudo) и pm2 save, чтобы список процессов восстановился после перезагрузки.
Фрагмент конфигурации nginx:
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
Проверка и перечитывание: sudo nginx -t && sudo systemctl reload nginx. HTTPS для такого сайта удобно выпустить через certbot — пошагово в инструкции по Let's Encrypt.
Почему после деплоя сайт отдаёт 502
502 Bad Gateway в такой схеме почти всегда значит: nginx работает, а Node.js-приложение не отвечает на порту из proxy_pass. В логе nginx это видно как connect() failed (111: Connection refused) while connecting to upstream. Порядок проверки на сервере:
sudo systemctl status myapp # или: pm2 status
journalctl -u myapp -n 50 # или: pm2 logs myapp --lines 50
sudo ss -ltnp | grep 3000 # слушает ли кто-то порт
curl -I http://127.0.0.1:3000/ # отвечает ли приложение напрямую
sudo tail -n 50 /var/log/nginx/error.log
Типичные причины: приложение упало при старте после обновления (новая мажорная версия Node.js, не пересобранные node_modules, не заданная переменная окружения), слушает другой порт, чем указано в nginx, или привязано к адресу ::1, когда nginx стучится на 127.0.0.1, — так бывает, если в коде указан хост localhost. Полный разбор остальных сценариев — в статье 502 Bad Gateway: что значит и как починить.
Как проверить сайт на Node.js после запуска
Проверка изнутри сервера (curl на 127.0.0.1) не показывает, что видит посетитель: DNS, прокси, сертификат и редиректы находятся снаружи. После деплоя проверьте сайт извне:
- Проверка HTTP-заголовков — код ответа и заголовки, которые реально отдаёт сайт: сразу видно 502 или 504 от прокси вместо ответа приложения.
- Проверка SSL — сертификат, который выдаёт nginx перед приложением: срок действия и соответствие домену.
Частые вопросы
npm устанавливается вместе с Node.js?
Да, если ставить с nodejs.org, через winget, Homebrew, nvm или NodeSource: npm и npx идут в комплекте. Отдельно npm ставится только в дистрибутивах, где он вынесен в свой пакет, например apt install npm в Ubuntu.
Какую версию Node.js скачать новичку?
Последнюю LTS. Её поддерживают почти все пакеты, учебники и фреймворки. Current имеет смысл ставить второй версией через nvm, когда нужна конкретная новая возможность.
Можно ли установить Node.js без прав администратора?
Да: на Windows — ZIP-архив в папку пользователя с добавлением в пользовательский PATH, на macOS и Linux — nvm, который работает целиком в домашнем каталоге.
Как удалить Node.js полностью?
На Windows — через «Установленные приложения», затем удалить папки %AppData%\npm и %LocalAppData%\npm-cache, если они остались. При установке через nvm — nvm uninstall <версия>. Через Homebrew — brew uninstall node.
Node.js работает на Windows 7?
Актуальные версии Node.js Windows 7 не поддерживают. Список поддерживаемых платформ ведётся в файле BUILDING.md репозитория nodejs/node; для старой системы разумнее перенести разработку на более новую ОС или в виртуальную машину.
nvm и NVMe — это одно и то же?
Нет. nvm — менеджер версий Node.js, а NVM Express (NVMe) — интерфейс твердотельных накопителей, к Node.js отношения не имеющий.