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.json
,package-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
, чтобы другие разработчики могли его использовать.