Defront — про фронтенд-разработку и не только
5.36K subscribers
21 photos
1.09K links
Ламповый канал про фронтенд и не только. Всё самое полезное для опытных web-разработчиков

Обсуждение постов @defrontchat

Также советую канал @webnya
Download Telegram
Вчера вышел релиз Yarn 2. Маэл Нильсон рассказал про все возможности новой версии — "Introducing Yarn 2!".

Первая версия переходит в режим поддержки и переезжает в 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
Недавно вышел 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
Кристоф Наказава из Facebook поделился большим количеством советов, которые помогли уменьшить размер зависимостей React Native на порядок — "Dependency Managers Don’t Manage Your Dependencies".

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

В статье рассказывается о том, как быстро найти тяжёлые пакеты, как выстроить процесс добавления новых пакетов в проект с отслеживанием их размера, как избежать проблем с устареванием зависимостей и т.п. Также в статье рассказывается про утилиты, которые полезно использовать при работе с зависимостями. Например, для поиска и удаления дубликатов можно использовать yarn-deduplicate, для поиска неиспользуемых зависимостей — depcheck.

#yarn #package

https://cpojer.net/posts/dependency-managers-dont-manage-your-dependencies