Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. JavaScript

6 качеств, благодаря которым Yarn является лучшим менеджером пакетов для JavaScript

by
Difficulty:IntermediateLength:MediumLanguages:

Russian (Pусский) translation by AlexBioJS (you can also view the original English article)

Yarn - это клиент npm (* диспетчер пакетов для Node. Здесь и далее примеч. пер.) с открытым исходным кодом, который был разработан командой Facebook и во многих аспектах превосходит стандартный клиент npm. В данном руководстве я сосредоточусь на рассмотрении шести ключевых характеристиках, которые позволяют Yarn быть превосходным инструментом:

  1. Скорость
  2. Надежность установок
  3. Возможность проверки лицензий
  4. Совместимость с npm и Bower
  5. Наличие нескольких реестров
  6. Возможность использования эмодзи

1. Скорость

Одним из достижений Yarn является его скорость работы  по сравнению со стандартным клиентом npm. Но насколько он быстр? Недавно проведенное эталонное тестирование показало, что Yarn был в два-три раза быстрее npm. В этом тесте измерялось время установки React, Angular 2 и Ember. Это весьма надежная проверка менеджера пакетов, поскольку каждый из этих фреймворков нуждается во  множестве зависимостей и содержит большую долю зависимостей реальных веб-приложений.

Давайте добавим еще одно значение и самостоятельно протестируем скорость путем установки модуля create-react-app при помощи yarn и npm. Ниже приведен результат установки с использованием yarn:

Вот результат установки с использованием npm:

Да. Этот результат бесспорно согласуется с другими сообщениями о значительном преимуществе yarn в скорости. Yarn установил модули за 2.59 секунд, тогда как npm потребовалось 9.422 секунд. Yarn был быстрее в 3.63 раза.

2. Надежность установок

Также yarn может похвастаться более надежными установками, чем npm. Когда установка считается ненадежной? Если при последующих установках происходит сбой или получается другой результат, то установка является ненадежной. Это может происходить по двум причинам:

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

Yarn справляется с обоими проблемами.

Офлайн кэш

Yarn использует глобальный офлайн кэш для сохранения пакетов, которые вы однажды установили, поэтому при установках новых версий используется кэшированная версия и достигается устойчивость к периодическим сбоям компьютерной сети. Вы можете узнать о расположении кэша yarn у вас при помощи команды:

Вот первые пять пакетов моего офлайн кэша:

Yarn способен на большее. У него может быть полное офлайн зеркало (* копия), которое будет использоваться обновлёнными версиями yarn.

Файл yarn.lock

Файл yarn.lock (* файл для блокировки ресурсов yarn) обновляется каждый раз, когда вы добавляете или обновляете версию пакета. В нем определяется, главным образом, точная версия каждого пакета, которая может быть указана в package.json при помощи частичного определения версии (например, указаны только главный и второстепенный номера версии), и его зависимостей.

Ниже приводится начало типичного файла yarn.lock. Вы можете увидеть версию такую, как она указана в package.json, например, "abbrev@1", и точно определенную версию "1.1.0".

Но почему?

Также yarn предоставляет вам команду yarn why для объяснения причины установки определенного пакета в вашем проекте:

3. Возможность проверки лицензий

Для некоторых проектов необходимо соблюдение определенных лицензионных требований или просто создание отчета для собственных или внешних целей. Это легко осуществляется при помощи команды Yarn yarn licenses ls. В результате создается компактный отчет, включающий официальное имя пакета, его URL-адрес и лицензию. Ниже представлен пример:

Yarn может даже создать для вас отказ от ответственности при выполнении команды yarn licenses generate-disclaimer. В результате выводится текст с сообщением об отказе от ответственности и текст для каждого пакета вашего приложения. Ниже приведен фрагмент отказа от ответственности, сгенерированного для моего тестового проекта.

4. Совместимость с npm и Bower

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

Основной причиной была не очень хорошая совместимость с Bower. При этом освобождалась папка bower_components или не доставлялся ни один пакет в новом проекте. Однако другой причиной является то, что команда Yarn не хотела поддерживать разделение в области управления пакетами и, наоборот, предпочитала переключение всех на npm.

Если вы заинтересованы в использовании Bower и не хотели бы переходить на другой менеджер пакетов прямо сейчас, вы по-прежнему можете использовать Yarn, однако, добавьте следующий фрагмент кода в ваш файл package.json.

5. Наличие нескольких реестров

Yarn может работать с несколькими типами реестров. Если вы просто добавляете пакет, то, по умолчанию, Yarn будет использовать свой реестр npm (который не является стандартным реестром npm). Однако, Yarn также может добавлять пакеты из файлов, удаленных tar-архивов с исходным кодом или удаленных репозиториев git (* система контроля версий).

Чтобы посмотреть текущий сконфигурированный реестр npm, выполните:

Для того чтобы установить другой тип реестра, используйте: yarn config set registry <registry url>

Для добавления пакетов из разных источников используйте следующие команды для добавления:

6. Эмодзи «рулят»!

Одним людям нравятся эмодзи, другим нет. Изначально Yarn отображал эмодзи автоматически, однако только на операционной системе Mac OS X. В результате на Yarn посыпались камни с двух сторон: ненавистники эмодзи были огорчены тем, что их консоль пестрила эмодзи, в то время как любители эмодзи были расстроены отсутствием эмодзи на Windows и Linux.

Сейчас эмодзи по умолчанию не отображаются на macOS, и вы можете включить эмодзи при помощи флажка --emoji:

Yarn является лучшим менеджером пакетов для JavaScript Он сходен с npm, однако значительно быстрее. Yarn разрешает серьезные проблемы «хрупкой» установки крупномасштабных проектов, поддерживает использование множества типов реестров и в добавок предоставляет возможность применять эмодзи. t. Как вы видите, помимо соответствующих ресурсов для изучения JavaScript также, чтобы вы не скучали, имеется множество библиотек и фреймворков. Если вы ищите дополнительные ресурсы для изучения или использования в работе, гляньте, что у нас есть на Envato marketplace.a>.
Все сообщество JavaScript - разработчиков очень позитивно отреагировало на появление Yarn. Также происходит много шумихи вокруг Yarn. Yarn уже справился с некоторыми проблемами, например, излишней поддержкой Bower и использованием эмодзи по умолчанию. Переход с npm на использование Yarn проходит очень легко. Обязательно его попробуйте.ry.
Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.