Вот почему менеджеры пакетов с несколькими узлами — хорошая идея.

Одной из лучших функций Node являются менеджеры пакетов. Существует множество различных способов установки и управления пакетами узлов. Здесь мы рассмотрим плюсы и минусы использования одного менеджера пакетов или нескольких менеджеров пакетов, а также некоторые из лучших способов их совместного использования.

Вы спросите, что такое менеджер пакетов? Читай дальше что бы узнать.

Что такое менеджеры пакетов?

В мире разработки программного обеспечения зависимости — это то, что вам нужно для запуска вашего проекта. Они как ингредиенты в рецепте: без них ничего не получится.

Например, если вы пишете приложение, использующее JavaScript, и ему нужен доступ к некоторым функциям из библиотеки под названием jQuery (которую когда-то использовали многие веб-сайты), то jQuery будет одной из ваших зависимостей. Вам нужно будет установить его, чтобы, когда кто-то посещает ваш сайт, они могли видеть те классные анимации или взаимодействия, которые вы создали с его помощью!

Менеджеры пакетов помогают управлять этими отношениями между проектами, управляя зависимостями для нас, поэтому нам не нужно беспокоиться о их ручной загрузке каждый раз, когда мы хотим добавить или обновить что-то новое — они также следят за тем, чтобы все работало вместе правильно и работало без сбоев после установки. (что иногда легче сказать, чем сделать).

Node поставляется с предварительно упакованным менеджером пакетов под названием NPM.

NPM — это менеджер пакетов по умолчанию, поэтому он встроен в среду выполнения узла. Вы можете использовать NPM для установки пакетов напрямую из GitHub или NPM. Вы также можете опубликовать свои пакеты на этом сайте, чтобы другие могли установить их, используя свою версию NPM.

NPM используется не только для установки пакетов; он также обрабатывает разрешение зависимостей и конфликты версий между двумя или более необходимыми библиотеками или модулями в кодовой базе вашего приложения.

Это означает, что если в любой момент времени на вашем сервере запущено несколько версий чего-то вроде Express, NPM позаботится о том, чтобы каждый экземпляр получал то, что ему нужно, не конфликтуя с другими экземплярами, выполняющими аналогичную работу, и все это без необходимости делать это с вами. ничего особенного, кроме простого вызова require() для объекта, когда это необходимо!

NPM — невероятно мощный инструмент, и с ним легко начать работу. Но если вы новичок в Node и JavaScript, может быть сложно узнать, какие инструменты доступны для вашего использования и какие из них лучше всего подходят для данного проекта.

Основная проблема с NPM заключается в медленной установке пакетов. Это не имеет большого значения, если вы просто запускаете один или два сценария изредка, но это может быть невероятно неприятно, если вы пытаетесь создать целое приложение, использующее десятки различных библиотек и инструментов.

Yarn и PNPM быстрее, чем NPM

Yarn — это безопасная и надежная альтернатива NPM, которая использует файл блокировки для предотвращения случайной перезаписи и обеспечивает правильное разрешение ваших зависимостей при установке пакетов.

Он также имеет более быстрое время установки, чем NPM, что делает его особенно полезным, если вы работаете с большими проектами, которые имеют много модулей с большим количеством зависимостей.

PNPM является альтернативой как Yarn, так и NPM, но он пока не так популярен, потому что не имеет некоторых функций, которые есть ни в одном из них (например, файлы блокировки). Однако его разработчики утверждают, что PNPM может устанавливать пакеты в четыре раза быстрее, чем Yarn или NPM, благодаря своей легкости; это также означает меньшее использование дискового пространства на вашем компьютере!

Если вы создаете проект, для которого требуется всего несколько зависимостей, вероятно, будет достаточно Yarn или NPM. Однако, если вы работаете с большими проектами со множеством модулей и зависимостей, то PNPM может быть для вас лучшим вариантом.

Преимущества использования нескольких менеджеров пакетов

Один менеджер пакетов может одновременно обрабатывать только одну версию любой данной библиотеки. Если вы хотите использовать две разные версии одной и той же библиотеки для других проектов или в разных средах (например, для производства и разработки), вам потребуются два отдельных пакета, установленных в вашей системе.

Это может привести к конфликтам, если оба пакета попытаются одновременно обновить свою версию одной и той же зависимости. Использование нескольких менеджеров пакетов означает, что у вас больше контроля над тем, какие зависимости устанавливаются и где, что помогает избежать конфликтов такого рода.

Еще одно преимущество заключается в том, что при использовании нескольких менеджеров пакетов каждый из них будет предоставлять свой уникальный набор функций. Некоторые могут быть быстрее других; у некоторых могут быть лучшие возможности управления зависимостями; другие могут больше подходить для разработки приложений в определенных средах, таких как ReactJS или VueJS и т. д.…

Наконец, использование нескольких менеджеров пакетов может помочь повысить производительность вашего разработчика за счет сокращения времени, затрачиваемого на поиск и установку зависимостей. Это связано с тем, что каждый менеджер пакетов будет разработан с учетом определенного набора вариантов использования (например, скорость, безопасность, управление зависимостями и т. д.).

Используйте несколько менеджеров пакетов, установив их глобально

С помощью командной строки вы можете указать, какой менеджер пакетов вы хотите использовать для конкретного проекта. Настройте несколько менеджеров пакетов на вашем компьютере:

  • NPM поставляется в комплекте с Node. Это позволит вам устанавливать другие пакеты (и менеджеры пакетов) из командной строки и управлять зависимостями во всех ваших проектах с помощью NPM. Это также полезно, если вы хотите запускать сценарии NPM в браузере (например, Webpack), потому что браузеры не поставляются с предустановленным NPM!
  • Установите Yarn глобально, используя NPM. Это еще один популярный способ управления зависимостями в проектах JavaScript. у него есть некоторые преимущества перед NPM, которые могут сделать его предпочтительным для определенных типов проектов или команд.
  • Наконец, установите PNPM. Этот менеджер пакетов является ответвлением NPM, разработанным для более быстрой и стабильной работы. Он также имеет некоторые дополнительные функции, которые могут быть полезны для некоторых типов проектов, например, поддержку зависимостей от GitHub.

Обратите внимание, что глобальная установка означает, что выбранный пакет будет доступен для всей вашей системы (вы можете получить доступ к программе из любого места через командную строку), в то время как локальная установка может быть доступна только из текущего рабочего каталога.

Реальные примеры того, как вы можете использовать несколько менеджеров пакетов

Проверьте эти варианты использования:

1. Yarn и NPM можно использовать вместе (например, create-react-app)

Это полезно, когда вы хотите воспользоваться преимуществами скорости и эффективности Yarn, сохраняя при этом совместимость с пакетами NPM. Если вам нужна последняя версия библиотеки, которая еще не была обновлена ​​для совместимости с Yarn, или если есть другая причина, по которой ваша команда предпочитает использовать NPM, несмотря на его медленную скорость или ограниченный набор функций, то это может хорошо сработать для вашего проект. Это также помогает избежать наличия двух отдельных деревьев зависимостей в настройке монорепозитория!

2. Использование Yarn для глобальных пакетов и PNPM для локальных установок

Хотя PNPM является самым быстрым менеджером пакетов, его использование для глобально установленных пакетов может оказаться сложным. Это связано с тем, что он использует другую файловую структуру, которая может вызвать проблемы совместимости с такими программами, как Visual Studio Code. Здесь на помощь приходит Yarn. Вы можете использовать его для глобально установленных пакетов и PNPM для локальных установок. Это решение — хороший способ получить преимущества обоих менеджеров пакетов без необходимости слишком сильно менять рабочий процесс. С этой настройкой — если вы хотите разгуляться — вы можете полностью удалить NPM из своей системы (но всегда приятно иметь NPM в качестве резервной копии).

3. Использование PNPM с NPM в качестве запасного варианта

Это хороший вариант, если вы хотите использовать PNPM, но не хотите, чтобы всем вашим разработчикам еще пришлось изучать новый инструмент. Это позволяет им продолжать работу с NPM до тех пор, пока они не освоятся с PNPM и не потребуют его для своей работы.

Использование нескольких менеджеров пакетов упрощает работу

Вы можете использовать несколько менеджеров пакетов. Вы можете установить их глобально или локально, и если вы хотите указать, какой менеджер пакетов следует использовать для конкретного проекта, просто используйте командную строку!

Если вы хотите установить в своей системе несколько менеджеров пакетов, убедитесь, что вы используете одну и ту же версию Node.js.

В заключение, мы считаем, что вам следует использовать более одного менеджера пакетов. Это отличный способ начать работу с Node и изучить новые инструменты, если вы уже знакомы с NPM. Если у вас еще не установлен Node, настройка проста в Windows.

Первоначально опубликовано на https://www.makeuseof.com 13 февраля 2023 г.