Введение
Прежде чем мы углубимся в мир менеджера пакетов Node, нам нужно понять и узнать, что такое менеджер пакетов.
Проще говоря, менеджер пакетов — это система или набор инструментов, используемых для автоматизации установки, обновления, настройки и использования программного обеспечения или приложений.
Менеджер пакетов не ограничивается только Node.js, на самом деле ОС, которую мы используем ежедневно, также использует менеджеры пакетов. Например.
Для MacOS мы используем менеджер пакетов brew
. Точно так же для Ubuntu мы используем менеджер пакетов apt-get
, а для Windows используем менеджер пакетов Winget
или Chocolatey
.
Краткая история менеджеров пакетов Node.
Node.js поставляется с менеджером пакетов NPM по умолчанию, то есть Node Package Manager. NPM является крупнейшим в мире реестром программного обеспечения и содержит более миллиона пакетов, которые ежедневно используются разработчиками JavaScript.
Существуют и другие менеджеры пакетов, такие как Yarn, представленный Meta в 2016 году. Затем у нас есть PNPM, то есть диспетчер пакетов Performance Node, выпущенный в 2017 году.
Вместе с npm
, yarn
и pnpm
было представлено еще несколько менеджеров пакетов узлов, таких как tink
и ied
, но позже их поддержка была прекращена.
Все о файле package.json
Файл package.json
является фундаментальной частью каждого проекта или приложения Node.js и используется всеми менеджерами пакетов, включая NPM, Yarn и PNPM. Файл служит манифестом вашего проекта и содержит метаданные о проекте и его зависимостях.
Вот пример того, как может выглядеть файл package.json
{ "name": "my-node-project", "version": "1.0.0", "description": "A sample Node.js project", "main": "index.js", "scripts": { "start": "node index.js", "test": "jest" }, "dependencies": { "express": "^4.17.13" }, "devDependencies": { "@types/express": "^4.17.13" }, "keywords": [], "author": "", "license": "ISC" }
Вот некоторые из общих свойств, которые вы увидите в файле package.json
.
name
: Название вашего проекта и приложения.version
: Текущая версия проекта.description
: Краткое описание проекта.main
: основная точка входа в ваш проект. Обычно это первый файл, который выполняется для приложения.scripts
: это объект, который содержит все команды сценария, которые являются частью жизненного цикла приложения, такие как запуск приложения, сборка, тестирование и т. д.dependencies
: Это пакеты, которые необходимы для выполнения вашего приложения. Они устанавливаются с помощьюnpm install --save <package_name>
express
devDependencies
: Некоторые пакеты необходимы только для целей разработки. Они устанавливаются с использованиемnpm i --save-dev <package_name>
, например,types@express
- В файле
package.json
есть еще несколько полей, таких какkeywords
,author
иlicense
и т. д.
NPM (менеджер пакетов узлов)
NPM управляет всеми пакетами и модулями для Node.js и состоит из клиента командной строки npm
. Он устанавливается в систему при установке Node.js. Необходимые пакеты и модули в проекте Node.js устанавливаются, удаляются и удаляются с помощью NPM.
Ключевая особенность
- Установка пакетов и управление ими. Легко устанавливайте, обновляйте и удаляйте пакеты с помощью простых команд.
- Разрешение зависимостей: автоматически разрешает и устанавливает зависимости пакетов.
- Сценарии npm. Запускайте предопределенные сценарии для автоматизации таких задач, как сборка, тестирование и развертывание вашего приложения.
- Семантическое управление версиями. Управляйте версиями пакетов с помощью семантического управления версиями, что упрощает контроль и обновление зависимостей.
- Безопасность и аудит: сканирование проектов на наличие уязвимостей и автоматическое применение исправлений с помощью
npm audit
.
Примеры
Чтобы установить, обновить или удалить пакет с помощью NPM, просто выполните следующие команды:
# For installing a package npm install <package_name> # For updating a package npm update <package_name> # To removing a package npm uninstall <package_name> # To install all dependencies npm install
Пряжа
Если вам нужно быстрое, надежное и безопасное управление зависимостями, yarn
— лучший выбор.
Монтаж
Чтобы установить Yarn, мы можем использовать npm
, который является менеджером пакетов Node.js по умолчанию. Хотя это тоже несколько альтернатив для установки Yarn. Давайте узнаем их ниже.
- Использование
npm
: глобальная установка пакетаyarn
позволяет нам использовать его в разных проектах через командную строку.
npm install --global yarn
- Для macOS: мы можем установить его через
Brew
илиcurl
. Давайте проверим команды, которые будут использоваться.
# Using brew package manager brew install yarn # Using shell scripts like Curl curl -o- -L https://yarnpkg.com/install.sh | bash
- Для Windows: вы можете установить его, запустив файл .msi, ссылка доступна здесь, или с помощью менеджера пакетов, такого как Chocolatey.
choco install yarn
Все о файле yarn.lock
Файл yarn.lock
создается или обновляется всякий раз, когда добавляются зависимости. Используя файл блокировки и детерминированный алгоритм установки, Yarn
может гарантировать, что структура каталога node_modules
одинакова во всех средах, будь то локальная машина разработки или производственный сервер.
Ключевая особенность
- Быстро и эффективно: параллельные загрузки с автономным кэшированием и выборочным включением версий делают управление пакетами более эффективным.
- Детерминированные установки: файлы yarn lock обеспечивают согласованную установку зависимостей в разных средах.
- Рабочие области: простое управление несколькими пакетами в одном репозитории.
- Улучшенная безопасность: применяется строгий SSL и контрольные суммы, что обеспечивает целостность загружаемых пакетов.
- Совместимость: Yarn совместим с реестром NPM, что обеспечивает доступ к миллионам пакетов NPM.
Примеры
Чтобы установить пакет с помощью Yarn, выполните следующую команду:
# To add a new package yarn add <package_name> # To update an already installed package yarn upgrade <package_name> # To remove a package yarn remove <package_name> # To install all dependencies for a project yarn install
PNPM (менеджер пакетов производительных узлов)
Проще говоря, PNPM — это быстрый менеджер пакетов с эффективным использованием дискового пространства.
Монтаж
- Использование
npm
: Чтобы установить PNPM, мы можем использовать npm, который является менеджером пакетов Node.js по умолчанию.
npm install --global pnpm
@pnpm/exe
упакован с Node.js в исполняемый файл, поэтому его можно использовать в системе без установленного Node.js.
npm install -g @pnpm/exe
- Для macOS: мы можем установить его через Brew. Давайте проверим команды, которые будут использоваться. Используя менеджер пакетов brew:
brew install pnpm
- Для Windows: вы можете установить с помощью диспетчера пакетов, например Chocolatey или Winget.
# Using Chocolately choco install pnpm # Using winget winget install pnpm
Все о файле pnpm-lock
Как и другие менеджеры пакетов, PNPM также создает файл блокировки pnpm-lock.yaml
при установке пакетов. Этот файл гарантирует, что каждая установка приводит к одному и тому же дереву зависимостей во всех средах.
Ключевая особенность
- Эффективное хранилище пакетов: использует глобальное хранилище пакетов, экономя место на диске и сокращая время установки.
- Строгое управление зависимостями: предотвращает случайное использование пакетов, которые явно не указаны в зависимостях вашего проекта.
- Рабочие области: поддерживает монорепозитории и упрощает управление зависимостями для многопакетных проектов.
- Кэши с адресацией содержимого. Обеспечивает неизменяемость и возможность кэширования пакетов, повышая производительность и безопасность.
- При использовании npm, если у вас есть 100 проектов, использующих зависимость, у вас будет 100 копий этой зависимости, сохраненных на диске. При этом зависимость будет храниться в хранилище с адресацией по содержимому.
- Совместимость: совместимость с реестром NPM и использование большинства инструментов, совместимых с npm.
Примеры
Чтобы установить, обновить или удалить пакет с помощью PNPM, выполните следующую команду:
# To add a new package pnpm add <package_name> # To update an already installed package pnpm update <package_name> # To remove a package pnpm remove <package_name> # To install all dependencies for a project pnpm install
Выбор правильного менеджера пакетов
Когда дело доходит до менеджеров пакетов, не существует универсального решения для всех. Выбор зависит от требований вашего проекта и ваших личных предпочтений. Вот несколько рекомендаций, которые помогут вам принять решение:
- Если вы отдаете предпочтение совместимости и поддержке обширной экосистемы, NPM — надежный выбор.
- Если для вас важны скорость, безопасность и автономные возможности, обратите внимание на Yarn.
- Если вас больше всего беспокоят дисковое пространство и эффективность установки, PNPM может быть лучшим вариантом.
Сравнение функций
Заключение
Менеджеры пакетов Javascript расширились, чтобы предложить разработчикам широкий выбор вариантов помимо NPM. В то время как NPM остается стандартом для многих, Yarn и PNPM также широко используются, каждый из которых имеет свои уникальные преимущества.
Выбор между NPM, Yarn и PNPM должен основываться на конкретных потребностях вашего проекта или команды.
Надеюсь, вы узнали что-то новое, как и я. Если это так, любезно поставьте лайк и поделитесь статьей, а также подпишитесь на меня, чтобы читать другие интересные статьи.
Рекомендации
Первоначально опубликовано на https://blog.amanpreet.dev.