Що таке 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
- Коли ти встановлюєш пакет:
javascript
npm install express- 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
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.