Что такое npm?

«Что такое npm?» — вопрос из категории Node.js Core, который задают на 50% собеседований Node.js Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

npm (Node Package Manager) — это стандартный менеджер пакетов для экосистемы Node.js. Он используется для установки, управления зависимостями и публикации JavaScript-библиотек (пакетов).

Ключевые функции:

  • Управление зависимостями: Установка пакетов через npm install <package-name>. Зависимости и их версии фиксируются в файле package.json.
  • Скриптинг: Запуск пользовательских команд, определённых в секции scripts файла package.json (например, npm run start, npm test).
  • Публикация пакетов: Позволяет разработчикам публиковать свои библиотеки в публичный или приватный реестр npm.
  • Управление версиями: Поддерживает семантическое версионирование (SemVer) через символы ^, ~ в package.json.

Пример package.json:

{
  "name": "my-app",
  "version": "1.0.0",
  "scripts": {
    "start": "node server.js",
    "dev": "nodemon server.js"
  },
  "dependencies": {
    "express": "^4.18.2"
  },
  "devDependencies": {
    "jest": "^29.0.0"
  }
}

Основные команды:

  • npm init — инициализирует новый проект и создаёт package.json.
  • npm install — устанавливает все зависимости из package.json.
  • npm install <package-name> --save — устанавливает пакет и добавляет его в dependencies.
  • npm install <package-name> --save-dev — устанавливает пакет и добавляет его в devDependencies (для инструментов разработки, например, тестовых фреймворков).
  • npm run <script-name> — выполняет пользовательский скрипт.