Vercel добавил кэширование зависимостей для Yarn 2+: ускорение сборки проектов
Да, Vercel теперь поддерживает кэширование зависимостей для Yarn версии 2 и выше. Ранее эта возможность была доступна только для npm, pnpm, Bun и Yarn 1. Нововведение уменьшает время установки пакетов и повышает производительность сборки, что критично для команд, работающих с монорепозиториями и бол

Да, Vercel теперь поддерживает кэширование зависимостей для Yarn версии 2 и выше. Ранее эта возможность была доступна только для npm, pnpm, Bun и Yarn 1. Нововведение уменьшает время установки пакетов и повышает производительность сборки, что критично для команд, работающих с монорепозиториями и большими кодовыми базами.
Как работает кэширование зависимостей в Vercel
Кэширование зависимостей — одна из ключевых функций Vercel, позволяющая ускорить процесс сборки за счёт повторного использования ранее загруженных пакетов. Когда разработчик запускает сборку, Vercel проверяет, изменились ли зависимости с последнего раза. Если нет, он использует кэшированную версию, экономя время на загрузке и установке пакетов. Это особенно заметно на проектах с сотнями зависимостей, где каждая секунда на счету.
Для Yarn 2 и новее кэширование теперь включено по умолчанию. Разработчикам не нужно ничего настраивать — достаточно использовать Yarn Berry (Yarn 2+) в своём проекте на Vercel. Если по какой-то причине кэширование требуется отключить, можно установить переменную окружения VERCELFORCENOBUILDCACHE со значением 1 в настройках проекта.
Какие преимущества даёт кэширование для Yarn 2+ на Vercel?
Кэширование зависимостей напрямую влияет на скорость сборки. Для проектов с большим количеством пакетов, особенно в монорепозиториях, где зависимости могут исчисляться сотнями, сокращение времени установки с нескольких минут до секунд становится значительным ускорением. Это позволяет командам быстрее получать обратную связь от CI/CD и ускорять деплой. Кроме того, снижается нагрузка на серверы сборки, что может уменьшить расходы на инфраструктуру.
Предыстория и контекст
Yarn — популярный менеджер пакетов для JavaScript, разработанный Facebook (ныне Meta). Первая версия (Yarn 1) вышла в 2016 году как альтернатива npm с улучшенной производительностью и детерминированными блокировками. В 2020 году вышла Yarn 2 (также известная как Yarn Berry), которая принесла множество нововведений: Plug'n'Play (PnP), улучшенную изоляцию зависимостей и поддержку современных рабочих процессов. Однако из-за архитектурных отличий Vercel долгое время не мог обеспечить кэширование для Yarn 2+, что вызывало недовольство сообщества.
Ранее разработчикам, использующим Yarn 2+, приходилось либо мигрировать на другие менеджеры пакетов, либо мириться с более долгими сборками. Теперь этот пробел устранён, и Vercel догоняет конкурентов вроде Netlify и Cloudflare Pages, которые уже поддерживали кэширование для всех основных менеджеров.
Что это значит для пользователей Yarn 4?
Для пользователей Yarn 4 есть дополнительная рекомендация: включить Corepack. Corepack — это экспериментальный инструмент Node.js, который позволяет автоматически выбирать нужную версию менеджера пакетов (Yarn, pnpm) на основе поля packageManager в package.json. Yarn рекомендует использовать Corepack для Yarn 4, чтобы обеспечить совместимость и получить все преимущества последней версии.
На практике это означает, что если вы используете Yarn 4 в проекте на Vercel, стоит убедиться, что Corepack активирован. Это можно сделать глобально (corepack enable) или через настройки CI/CD. Vercel поддерживает Corepack, поэтому процесс будет максимально гладким.
Технические подробности: как настроить и отключить
Для большинства пользователей кэширование будет работать «из коробки». Если вы уже используете Yarn 2+ на Vercel, просто перезапустите сборку — и она должна стать быстрее. В случае проблем стоит проверить, не переопределяет ли переменная VERCELFORCENOBUILDCACHE поведение по умолчанию.
Отключить кэширование можно двумя способами: либо установить переменную окружения VERCELFORCENOBUILDCACHE=1, либо использовать опцию --no-cache в командах сборки. Это может потребоваться, если вы заметили, что кэш устарел или мешает отладке.
Vercel также рекомендует ознакомиться с документацией по Build Cache, где описаны все нюансы работы кэширования, включая инвалидацию кэша и работу с монорепозиториями.
Кого затронет нововведение
В первую очередь это касается разработчиков, использующих Yarn 2+ на платформе Vercel. Раньше они были вынуждены ждать дольше при каждой сборке, что замедляло разработку и CI/CD. Теперь время установки зависимостей сократится, особенно для проектов с большим количеством пакетов.
Кроме того, нововведение полезно командам, которые мигрируют с Yarn 1 на Yarn 2+ и опасались потери производительности. Теперь это не проблема.
Для бизнеса и продуктовых команд ускорение сборок означает более частые и быстрые деплои, что положительно сказывается на времени вывода новых функций.
Что будет дальше
Vercel продолжает улучшать свою платформу, и поддержка Yarn 2+ — лишь один из шагов. Можно ожидать, что в будущем появится кэширование для других инструментов, а также улучшится интеграция с современными менеджерами пакетов. Возможно, Vercel также добавит более тонкие настройки кэширования, например, возможность кэшировать только определённые зависимости или настраивать политику инвалидации.
Итог
Поддержка кэширования зависимостей для Yarn 2+ делает Vercel более привлекательным для команд, использующих современный JavaScript-стек. Это устраняет давнее узкое место и позволяет разработчикам сосредоточиться на коде, а не на ожидании сборок. Если вы используете Yarn 2+ и Vercel, обновление уже доступно — просто запустите сборку и оцените разницу.