Skip to main content

Що таке npm?

Що таке npm

npm - скорочення від

Node Package Manager - менеджер пакетів для Node.js.

Простіше кажучи:

npm - це інструмент, який дозволяє встановлювати, оновлювати, видаляти й керувати бібліотеками (пакетами) у Node.js-проєктах.

Основні функції npm

МожливістьЩо робить
Встановлення пакетівВстановлює зовнішні бібліотеки (npm install express)
Публікація пакетівДозволяє викласти власний пакет у публічний npm-реєстр
Керування залежностямиСтежить за версіями, зберігає їх у package.json
Запуск скриптівДозволяє виконувати команди з розділу scripts
КешуванняЗберігає завантажені пакети локально, прискорюючи повторне встановлення

Приклади команд npm

КомандаПризначення
npm initСтворює package.json
npm install (або просто npm i)Встановлює всі залежності з package.json
npm install expressВстановлює конкретний пакет
npm install --save-dev nodemonВстановлює пакет як dev-залежність
npm uninstall expressВидаляє пакет
npm updateОновлює залежності
npm run <script>Запускає команду з "scripts" у package.json
npm publishПублікує власний пакет у npm-реєстр

Де зберігаються пакети після встановлення

Усі пакети, встановлені через npm, потрапляють у папку node_modules/ у корені проєкту.

Що таке node_modules

node_modules - це директорія, куди npm (або pnpm, yarn) встановлює всі залежності проєкту.

Приклад структури проєкту

javascript
my-app/ ├── node_modules/ │ ├── express/ │ ├── chalk/ │ ├── lodash/ │ └── ... ├── package.json ├── package-lock.json └── index.js

Кожен встановлений пакет - це папка всередині node_modules.

Як пов'язані npm і node_modules

  1. Коли ти встановлюєш пакет:
javascript
npm install express
  1. npm:
  • шукає пакет в онлайн-реєстрі npm (https://www.npmjs.com),
  • завантажує його та всі його залежності,
  • розміщує все в папці node_modules/,
  • записує назву й версію в package.json.

Що таке package-lock.json

Після встановлення npm створює файл package-lock.json:

  • фіксує точні версії всіх встановлених пакетів і їхніх підзалежностей;
  • гарантує однакову збірку в усіх розробників проєкту;
  • пришвидшує повторні встановлення.

Приклад процесу

javascript
npm init -y # створюємо package.json npm install express # встановлюємо бібліотеку

Після цього структура:

javascript
my-app/ ├── node_modules/ │ └── express/ ├── package.json └── package-lock.json

Важливі деталі

Локальні й глобальні пакети

ТипКомандаДе встановлюється
Локальнийnpm install expressу ./node_modules поточного проєкту
Глобальнийnpm install -g nodemonу зовнішню системну директорію npm

Навіщо потрібна node_modules

  • Це фізичне сховище всіх залежностей проєкту.
  • Без неї проєкт не запуститься, якщо залежності не встановлені.

Чому node_modules не заливають на GitHub

Папка може займати сотні мегабайтів. Замість цього в репозиторій додають лише:

  • package.json - перелік залежностей;
  • package-lock.json - точні версії.

При клонуванні проєкту достатньо виконати:

javascript
npm install
  • і npm заново створить node_modules.

Підсумок

ПоняттяОпис
npmМенеджер пакетів для Node.js (встановлює, оновлює, публікує бібліотеки)
node_modulesПапка, де фізично зберігаються встановлені пакети
package.jsonОписує залежності проєкту
package-lock.jsonФіксує точні версії пакетів для стабільності

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.