Как да инсталирате Node.js: Пълно техническо ръководство за всички платформи
Node.js е JavaScript среда за изпълнение с отворен код и кросплатформена поддръжка, изградена върху V8 двигателя на Chrome, която изпълнява JavaScript код извън браузърна среда. Нейният неблокиращ, управляван от събития I/O модел я прави доминиращ избор за изграждане на 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 пакети, които прецизно проследяват LTS и текущите линии на издания на Node.js. Това е най-надеждният подход за производствени 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.
След инсталирането отворете Command Prompt или PowerShell и проверете:
node -v
npm -vВажно: По време на съветника за инсталиране има незадължителна стъпка за инсталиране на Chocolatey и инструменти за компилиране за нативни модули (C++ добавки). Активирайте я, ако зависимостите на вашия проект включват пакети като bcrypt, sharp или модули, зависещи от node-gyp. Пропускането й причинява загадъчни грешки при компилиране по-късно.
Метод 2: Chocolatey
Chocolatey е мениджър на пакети за Windows, който позволява скриптирани, повторяеми инсталации — ценен за осигуряване на машини на разработчици.
Отворете Command Prompt или 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 -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 приложения на Dedicated Server, конфигурирайте 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 startupnpm list -g --depth=0 показва само основни CLI инструменти.nvmrc е ангажиран в хранилището: Гарантира, че всички членове на екипа и CI тръбопроводи използват една и съща версия на Node.jsЧЗВ
Каква е разликата между 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.
