Вчера вышел релиз Yarn 2. Маэл Нильсон рассказал про все возможности новой версии — "Introducing Yarn 2!".
Первая версия переходит в режим поддержки и переезжает в
Была реализована идея Zero-Installs, которая включает в себя много функций, для того чтобы все зависимости были доступны вне зависимости от внешних факторов. По сути теперь возможно без проблем закоммитить кэш yarn в git (гораздо эффективнее чем версионирование node_modules) и все зависимости будут доступны сразу после клонирования репозитория.
Очень много изменений в воркспейсах. Упрощена установка зависимостей. Добавлена команда
Yarn 2 поставляется вместе с простым интерпретатором командной строки (подобно sh), благодаря этому установочные скрипты будут работать независимо от операционной системы. Lockfile теперь использует yaml. Импорт зависимостей, не указанных в package.json, теперь запрещён. Улучшили вывод в консоль. Добавили команду
Из внутренних изменений — Yarn перешёл на модульную архитектуру, кодовая база была переписана с Flow на TypeScript.
#yarn #release #tool
https://dev.to/arcanis/introducing-yarn-2-4eh1
Первая версия переходит в режим поддержки и переезжает в
yarnpkg/legacy, новая версия будет жить в репозитории yarnpkg/berry. Для облегчения процесса миграции разработчики подготовили Migration Guide.Была реализована идея Zero-Installs, которая включает в себя много функций, для того чтобы все зависимости были доступны вне зависимости от внешних факторов. По сути теперь возможно без проблем закоммитить кэш yarn в git (гораздо эффективнее чем версионирование node_modules) и все зависимости будут доступны сразу после клонирования репозитория.
Очень много изменений в воркспейсах. Упрощена установка зависимостей. Добавлена команда
yarn workspaces foreach, которая выполняет команду для всех воркспейсов. Для упрощения релизов пакетов монорепы добавлен новый релизный воркфлоу с помощью команды yarn version (пока в экспериментальном режиме). Появилась очень интересная фича — workspace constraints — правила на языке Пролог, которые позволяют синхронизировать зависимости воркспейсов.Yarn 2 поставляется вместе с простым интерпретатором командной строки (подобно sh), благодаря этому установочные скрипты будут работать независимо от операционной системы. Lockfile теперь использует yaml. Импорт зависимостей, не указанных в package.json, теперь запрещён. Улучшили вывод в консоль. Добавили команду
yarn dlx для загрузки и выполнения пакетов. Добавили поддержку протоколов patch: и portal:.Из внутренних изменений — Yarn перешёл на модульную архитектуру, кодовая база была переписана с Flow на TypeScript.
#yarn #release #tool
https://dev.to/arcanis/introducing-yarn-2-4eh1
DEV Community
Introducing Yarn 2 ! 🧶🌟
Hi everyone! After exactly 365 days of very intensive development, I'm extremely happy to unveil the...
Недавно вышел Yarn 2. Джэмон Холмгрен из Inifinite Red поделился, к чему пришла команда после оценки перехода c первой версии Yarn на вторую версию и NPM — "Yarn 1 vs Yarn 2 vs NPM".
При сравнении пакетных менеджеров учитывался уровень поддержки, скорость, предсказуемость сборок, надёжность, распространение среди сообщества, кеширование, стоимость перехода и дополнительные фичи.
Краткие итоги статьи. По уровню поддержки победили Yarn 1 и NPM — Yarn 2 не поддерживает React Native; для них это было критично. По скорости установки пакетов победил Yarn 1. С утилизацией кеширования не было замеров, но разработчики утверждают, что Yarn 1 потребляет меньше траффика по сравнению с NPM. Также Yarn 1 распространён среди сообщества React/React Native. Многие дополнительные фичи, которые предоставляет Yarn 2 некритичны для их проектов. Мне показалось сомнительным, что в пункте про надёжность и предсказуемость NPM немного уступил Yarn 1 из-за статьи 2018 года. После оценки команда решила остаться на Yarn 1.
Рекомендую почитать статью, если вы тоже задумываетесь о переходе на новый пакетный менеджер.
#package #yarn #npm #comparison
https://shift.infinite.red/yarn-1-vs-yarn-2-vs-npm-a69ccf0229cd
При сравнении пакетных менеджеров учитывался уровень поддержки, скорость, предсказуемость сборок, надёжность, распространение среди сообщества, кеширование, стоимость перехода и дополнительные фичи.
Краткие итоги статьи. По уровню поддержки победили Yarn 1 и NPM — Yarn 2 не поддерживает React Native; для них это было критично. По скорости установки пакетов победил Yarn 1. С утилизацией кеширования не было замеров, но разработчики утверждают, что Yarn 1 потребляет меньше траффика по сравнению с NPM. Также Yarn 1 распространён среди сообщества React/React Native. Многие дополнительные фичи, которые предоставляет Yarn 2 некритичны для их проектов. Мне показалось сомнительным, что в пункте про надёжность и предсказуемость NPM немного уступил Yarn 1 из-за статьи 2018 года. После оценки команда решила остаться на Yarn 1.
Рекомендую почитать статью, если вы тоже задумываетесь о переходе на новый пакетный менеджер.
#package #yarn #npm #comparison
https://shift.infinite.red/yarn-1-vs-yarn-2-vs-npm-a69ccf0229cd
Medium
Yarn 1 vs Yarn 2 vs NPM
Re-examining Infinite Red’s decision to use Yarn — comparing NPM, Yarn 1, and Yarn 2
Кристоф Наказава из Facebook поделился большим количеством советов, которые помогли уменьшить размер зависимостей React Native на порядок — "Dependency Managers Don’t Manage Your Dependencies".
Добавление тяжёлых зависимостей замедляет время разворачивания проекта, а также оказывает негативный эффект на инструменты, которые парсят или анализируют файлы внутри node_modules.
В статье рассказывается о том, как быстро найти тяжёлые пакеты, как выстроить процесс добавления новых пакетов в проект с отслеживанием их размера, как избежать проблем с устареванием зависимостей и т.п. Также в статье рассказывается про утилиты, которые полезно использовать при работе с зависимостями. Например, для поиска и удаления дубликатов можно использовать
#yarn #package
https://cpojer.net/posts/dependency-managers-dont-manage-your-dependencies
Добавление тяжёлых зависимостей замедляет время разворачивания проекта, а также оказывает негативный эффект на инструменты, которые парсят или анализируют файлы внутри node_modules.
В статье рассказывается о том, как быстро найти тяжёлые пакеты, как выстроить процесс добавления новых пакетов в проект с отслеживанием их размера, как избежать проблем с устареванием зависимостей и т.п. Также в статье рассказывается про утилиты, которые полезно использовать при работе с зависимостями. Например, для поиска и удаления дубликатов можно использовать
yarn-deduplicate, для поиска неиспользуемых зависимостей — depcheck.#yarn #package
https://cpojer.net/posts/dependency-managers-dont-manage-your-dependencies
cpojer.net
Dependency Managers Don’t Manage Your Dependencies
Read more about how to manage front end dependencies.