npm

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

С помощью npm можно устанавливать, обновлять и удалять пакеты, а также управлять зависимостями между ними. npm также позволяет создавать свои собственные пакеты и делиться ими с другими разработчиками.

npm используется практически всеми разработчиками Node.js для управления зависимостями в их приложениях. Он также включен в Node.js по умолчанию, что делает его доступным для использования без необходимости установки дополнительного ПО.

package.json

package.json можно представить, как стикеры (список пакетов нужных версий) на npm-коробке (проект). Файл генерируется командой npm init при создании JavaScript/Node.js проекта со следующими метаданными:

  • name: название JS библиотеки/проекта.
  • version: версия проекта.
  • description: описание проекта.
  • license: лицензия проекта.

dependencies и devdependencies представляют собой словари с именами npm-библиотек (ключ) и их семантические версии (значение). Они предназначены соответственно для использования в продакшене и разработке.

package-lock.json

Файл package-lock.json описывает версии пакетов, используемые в JavaScript-проекте. Если package.json включает общее описание зависимостей (название товара), то package-lock.json более детальный – всё дерево зависимостей.

dependencies и devdependencies

Поле dependencies определяет список зависимостей, без которых код вашего проекта не сможет корректно работать. Это главный и основной список зависимостей для библиотек и программ на Node.js. Если в вашем коде есть импорты каких-то сторонних зависимостей, например import { get } from 'lodash', то эта зависимость должна быть прописана в поле dependencies. Ее отсутствие приведет к тому, что при выполнении ваша программа упадет с ошибкой, потому что нужная зависимость не будет найдена.

Поле devDependencies позволяет задать список зависимостей, которые необходимы только на этапе разработки пакета, но не для выполнения его кода в рантайме.

Заключение
  • в каких файлах хранятся данные о зависимостях (package.jsonpackage-lock.json).
  • как установить пакеты в продакшен (npm install), на локальной машине (npm ci) и провести аудит пакетов (npm audit).
  • как добавить пакет в репозиторий (npm publish).

Примеры команд npm:

  • npm install <package>: устанавливает пакет в приложение.
  • npm install --save <package>: устанавливает пакет и добавляет его в dependencies в файл package.json.
  • npm update: обновляет все установленные пакеты до последней версии.
  • npm uninstall <package>: удаляет пакет из приложения.
  • npm init: создает файл package.json, который содержит информацию о приложении и его зависимостях.
  • npm publish: публикует пакет в реестр npm, чтобы другие разработчики могли его использовать.

Назад