Як встановити Node.js: повний технічний посібник для всіх платформ
Node.js — це відкрита, кросплатформна середовище виконання JavaScript, побудована на рушії V8 від Chrome, яка виконує код JavaScript поза браузерним середовищем. Її неблокуюча, подієво-орієнтована модель введення/виведення робить її домінуючим вибором для створення високопродуктивних API, застосунків реального часу, мікросервісів та серверного інструментарію. Правильне встановлення Node.js — з використанням відповідного методу для вашої ОС та робочого процесу — є основою стабільного, відтворюваного середовища розробки.
Цей посібник охоплює всі основні шляхи встановлення: офіційні інсталятори, рідні менеджери пакетів ОС, бінарні дистрибутиви NodeSource та nvm (Node Version Manager). Він також розглядає управління версіями, гігієну глобальних пакетів та міркування щодо виробничих серверів, які більшість посібників повністю пропускають.
Вибір правильного методу встановлення
Перш ніж виконувати будь-яку команду, зрозумійте, що насправді дає вам кожен метод — адже неправильний вибір створює реальні операційні проблеми пізніше.
| Метод | Найкраще для | Гнучкість версій | Потрібні права root | Примітки |
|---|
| — | — | — | — | — |
|---|
| Офіційний інсталятор `.pkg` / `.msi` | Швидке локальне налаштування, початківці | Лише одна версія | Так | Забруднює системний PATH; важко перемикати версії |
|---|
| Менеджер пакетів ОС (`apt`, `brew`, `yum`) | Загальносистемні встановлення, CI-сервери | Обмежена | Так | Часто постачає застарілі версії |
|---|
| Бінарний репозиторій NodeSource | Linux-сервери, передбачуване закріплення 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 nodejsFedora / 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 — окремий проєкт зі схожим інтерфейсом.
Завантажте інсталятор зі сторінки релізів GitHub nvm-windows. Після встановлення:
nvm install lts
nvm use lts
node -vWindows 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 unit вашого застосунку на 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-патчів
FAQ
У чому різниця між 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.
