Кратко
npm — менеджер пакетов для JavaScript. Он скачивает готовые библиотеки (пакеты) с npmjs.com и устанавливает их в ваш проект. Основные команды: npm init, npm install, npm run. Все библиотеки хранятся в папке node_modules.
Подробно
Что такое npm?
npm (Node Package Manager) — это:
- Реестр (registry) — коллекция миллиона готовых библиотек
- Менеджер — инструмент для установки этих библиотек
- Скрипт-раннер — запуск команд из package.json
Установка пакетов: npm install lodash # установить lodash npm install --save-dev jest # установить как devDependency
Что создаётся:
- папка node_modules/ — файлы библиотек
- package-lock.json — точные версии всех пакетов
Зачем нужен package-lock.json? Он фиксирует ТОЧНЫЕ версии всех пакетов. Без него другой разработчик может установить другую версию и код сломается.
node_modules — НЕ коммитится! Добавьте в .gitignore: node_modules/
Эту папку можно восстановить через npm install.
Полезные команды: npm install — установить все зависимости из package.json npm uninstall lodash — удалить пакет npm outdated — показать устаревшие пакеты npm update — обновить пакеты npm ls — дерево зависимостей
npm scripts: В package.json можно определить скрипты: "scripts": { "start": "vite", "build": "vite build", "test": "jest" }
Запуск: npm run start npm run build npm test
Ментальная модель
npm — как магазин приложений для вашего проекта. Вы заходите в магазин (npmjs.com), выбираете приложение (пакет), устанавливаете (npm install). Оно появляется в папке node_modules. Остальные разработчики могут установить те же приложения через package.json.
Примеры
**Самый простой:**
# Установка пакета
npm install lodash
# В package.json появится:
# "dependencies": { "lodash": "^4.17.21" }
# Проверка, что пакет установлен:
npm ls lodashБазовая установка пакета: npm скачивает библиотеку и записывает её в package.json.
**Простой:**
# Установка devDependency
npm install --save-dev prettier
# В package.json:
# "devDependencies": { "prettier": "^3.0.0" }
# devDependencies — только для разработки,
# не попадают в production сборкуРазница dependencies и devDependencies.
**Реальный пример:**
# Инициализация нового проекта
npm init -y # Создаёт package.json
# Установка зависимостей
npm install react react-dom
npm install --save-dev typescript @types/react
# Проверка
npm ls # Дерево зависимостей
npm outdated # Устаревшие пакетыИнициализация проекта и установка всех зависимостей.
Частые ошибки
**Неправильно:** Коммитить node_modules
**Почему:** node_modules может весить гигабайты. Восстановить через npm install.
**Правильно:** Добавьте node_modules в .gitignore.
**Неправильно:** Устанавливать пакеты без package.json
**Почему:** Без package.json пакеты не привязаны к проекту и будут потеряны.
**Правильно:** Сначала npm init, потом npm install.
**Неправильно:** Не использовать package-lock.json
**Почему:** Без lock-файла версии могут отличаться между разработчиками.
**Правильно:** Коммитите package-lock.json. Не удаляйте его.
Важно запомнить
- npm install — установить пакет
- npm init -y — создать package.json
- node_modules — НЕ коммитить
- package-lock.json — коммитить
- dependencies vs devDependencies
- npm run — запуск скриптов
Связь
Назад: Вы знаете терминал (T1). npm запускается через терминал.
Вперёд: Следующий урок (T5) — package.json: файл конфигурации вашего проекта.