Vercel научился пропускать сборку неизменённых проектов в Bun-монорепозиториях
Платформа Vercel теперь поддерживает файл блокировки зависимостей Bun — bun.lockb — в своей системе сборки для монорепозиториев. Это означает, что при деплое Vercel может автоматически определять, изменились ли зависимости, и пропускать сборку проектов, где ничего не поменялось. Ранее такая возможно

Платформа Vercel теперь поддерживает файл блокировки зависимостей Bun — bun.lockb — в своей системе сборки для монорепозиториев. Это означает, что при деплое Vercel может автоматически определять, изменились ли зависимости, и пропускать сборку проектов, где ничего не поменялось. Ранее такая возможность была доступна только для npm, yarn и pnpm, но теперь и пользователи Bun могут ускорить свои пайплайны и сэкономить ресурсы.
Как работает пропуск сборки в Vercel
При каждом деплое Vercel анализирует изменения в монорепозитории, чтобы определить, какие проекты действительно нужно пересобрать. Ключевой фактор — изменение файла блокировки зависимостей: если он не изменился, значит, зависимости остались прежними, и сборка для соответствующего проекта может быть пропущена. Ранее эта логика работала только для lock-файлов npm (package-lock.json), yarn (yarn.lock) и pnpm (pnpm-lock.yaml). С обновлением Vercel начал распознавать и bun.lockb — специфичный для Bun формат блокировки.
Почему это важно для разработчиков на Bun?
Bun — это современный рантайм для JavaScript и TypeScript, который также включает менеджер пакетов и сборщик. Он набирает популярность благодаря высокой производительности, особенно в задачах, связанных с установкой зависимостей и выполнением скриптов. Для команд, использующих Bun в монорепозиториях, обновление означает сокращение времени деплоя. Если изменения затрагивают только один проект, остальные не будут пересобираться впустую. Это особенно важно для больших монорепозиториев, где полная сборка может занимать десятки минут. Разработчики смогут быстрее получать обратную связь от CI/CD и экономить ресурсы.
Предыстория и контекст
Поддержка Bun на Vercel появилась ещё в 2023 году, когда платформа начала разрешать деплой приложений, использующих Bun в качестве рантайма. Однако функция пропуска сборки для монорепозиториев не работала с его блокировками. Теперь это упущение исправлено, что делает Vercel более привлекательным для команд, которые активно внедряют Bun в крупные проекты. В российском контексте популярность Bun пока невелика, но растёт, особенно среди энтузиастов и в проектах, где важна производительность сборки. Многие разработчики уже оценили скорость Bun при установке пакетов, и теперь они могут получить аналогичные преимущества при деплое на Vercel.
Как Vercel определяет, что проект не изменился?
Vercel определяет менеджер пакетов по наличию соответствующего lock-файла в корне проекта. Для Bun это bun.lockb. При обнаружении такого файла Vercel использует его хеш для сравнения с предыдущим деплоем. Если хеш не изменился, все проекты, зависимые от этого lock-файла, помечаются как неизменённые. Важно отметить, что Vercel также учитывает изменения в самом коде проекта — пропуск сборки происходит только при неизменных зависимостях и коде. Это означает, что если разработчик изменил только один файл в одном проекте, остальные проекты монорепозитория не будут пересобраны, если их зависимости остались прежними.
Технические детали реализации
Для корректной работы новой функции необходимо, чтобы в корне монорепозитория находился файл bun.lockb. Vercel автоматически обнаружит его и начнёт использовать для оценки изменений. Если в проекте используется несколько менеджеров пакетов (например, Bun для одних частей и npm для других), Vercel будет ориентироваться на lock-файлы, соответствующие каждому проекту. При этом важно, чтобы структура монорепозитория соответствовала ожиданиям Vercel: корневой lock-файл должен отражать зависимости всех проектов. В случае с Bun это достигается за счёт того, что bun.lockb хранит полную информацию о зависимостях всего монорепозитория.
Какие ещё преимущества даёт поддержка Bun на Vercel?
Помимо пропуска сборки, Vercel поддерживает Bun как рантайм для серверных функций и статических сайтов. Это означает, что разработчики могут использовать Bun не только для управления зависимостями, но и для выполнения кода на стороне сервера. Bun обеспечивает более быстрый запуск по сравнению с Node.js, что особенно важно для serverless-функций, где время холодного старта критично. Кроме того, Bun включает встроенный сборщик и тестовый раннер, что может упростить конфигурацию проекта. Однако на данный момент Vercel не использует сборщик Bun напрямую — сборка по-прежнему выполняется с помощью стандартных инструментов, таких как Next.js или Vite.
Кого затронет и как
Обновление в первую очередь полезно командам, использующим Bun в монорепозиториях на Vercel. Это могут быть как стартапы, так и крупные компании, мигрирующие на Bun ради скорости. Для разработчиков, которые уже используют другие менеджеры пакетов, ничего не меняется. В российском контексте популярность Bun пока невелика, но растёт, особенно среди энтузиастов и в проектах, где важна производительность сборки. Если вы работаете с Bun в монорепозитории, стоит проверить, как новая функция повлияет на ваши пайплайны. Возможно, вы заметите значительное ускорение деплоя, особенно если ваш монорепозиторий содержит много проектов.
Что будет дальше?
Vercel продолжает расширять поддержку современных инструментов. Можно ожидать дальнейшей интеграции с Bun, например, улучшенной поддержки его встроенного сборщика или тестового раннера. Также возможно появление аналогичной функциональности для других emerging-инструментов, таких как Deno или Turbo. В целом, тренд на оптимизацию сборок в монорепозиториях очевиден: Vercel, как и другие платформы (например, Netlify или Cloudflare Pages), стремится сократить время деплоя и снизить затраты для разработчиков. Поддержка Bun — лишь один из шагов в этом направлении.
Итог
Поддержка Bun-блокировок в Vercel — это логичный шаг, который делает платформу более универсальной. Разработчики, использующие Bun, теперь могут пользоваться преимуществами пропуска ненужных сборок, что ускоряет деплой и снижает затраты. Если вы работаете с Bun в монорепозитории, стоит проверить, как новая функция повлияет на ваши пайплайны. Возможно, вы заметите значительное ускорение деплоя, особенно если ваш монорепозиторий содержит много проектов. В любом случае, это хорошая новость для сообщества Bun и ещё один шаг к более эффективной разработке.