15%

Спести 15% на всички хостинг услуги

Тествай уменията си и получи Отстъпка за всеки хостинг план

Използвайте код:

Skills
За начало
18.10.2024

Как да инсталирате 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 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.

След инсталирането отворете 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 -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 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 startup
  • Обратният прокси е на място: Node.js не е директно изложен на порт 80/443
  • TLS се прекратява на прокси: Валиден сертификат е инсталиран и HTTPS пренасочванията са наложени
  • Списъкът с глобални пакети е минимален: npm list -g --depth=0 показва само основни CLI инструменти
  • .nvmrc е ангажиран в хранилището: Гарантира, че всички членове на екипа и CI тръбопроводи използват една и съща версия на Node.js
  • Актуализациите за сигурност са автоматизирани: Задача в 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
    За начало