Facebook анонсирует Yarn 1.0


Есть новая версия диспетчера пакетов JavaScript с открытым исходным кодом Yarn, запущенная в прошлом году Facebook, Google, Expononet и Tilde.

Yarn предназначен для замены диспетчера пакетов npm, который автоматически включается в Node.js. Разработчики Facebook, работающие над большими проектами, такими как React, обнаружили, что клиент npm не масштабируется под количество программистов и количество пакетов, поэтому объединились с Google, Exponent и Tilde и создали новый клиент npm — что и есть Yarn.

Первоначально Yarn был выпущен 11 месяцев назад, и сейчас его используют более 175 000 проектов на GitHub. Yarn также теперь отвечает за почти 3 миллиарда загрузок пакетов в месяц. В Facebook Yarn был принят во многих кодовых базах, включая основное приложение и веб-сайт Facebook, Instagram, Oculus и WhatsApp.

Преимущества Yarn, заключающиеся в более коротком времени установки, лучшей производительности и стабильности, позволили компаниям, включая Twitter, Microsoft, Kenzan и Sentry, использовать этот продукт.

Бурак Йигит Кая, Кристоф Наказава и Маэль Нисон из команды Yarn написали в блоге кода Facebook:

«Мы в восторге от принятия и участия сообщества. Когда мы запускали Yarn почти год назад, основное внимание уделялось стабильности, отказоустойчивости и производительности. Основываясь на основных принципах того, что сделало yarn успешной в первую очередь, выпуск 1.0 поставляется с много новых функций, которые, как мы надеемся, помогут сообществу Yarn двигаться быстрее и создавать отличные проекты ».

В новой версии Yarn добавлены рабочие области, поддержка автоматического объединения файлов LockFiles и выборочное разрешение версий.

Yarn Workspaces позволяет управлять кодом, используя подход монорепозитория для управления версиями. Разработчики говорят, что это упрощает совместное использование кода во всех проектах, избегая проблем с синхронизацией зависимостей. Рабочие области позволяют автоматически объединять все зависимости из нескольких файлов package.json и устанавливать их все за один раз. Yarn также создаст символические ссылки между всеми рабочими областями, которые зависят друг от друга.

Рабочие области уже используются некоторыми командами в Facebook и такими проектами, как Babel, в сообществе с открытым исходным кодом.

Автоматическое слияние устраняет проблему, когда в файле yarn.lock возник конфликт слияния, поскольку зависимости обновлялись в отдельных запросах на вытягивание один за другим. Если это произойдет, Yarn автоматически обработает разрешение конфликта за вас.

(щелкните в формате GIF, чтобы увеличить)

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

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


Добавить комментарий