
Итак, когда Bun объявляет о выпуске версии 1.0, мне просто нужно было проверить ажиотаж. Давайте разберемся, что потребуется для миграции, стоит ли оно того.
Установка очень проста: curl -fsSL «https://bun.sh/install | bash» и занимает всего секунду, пока хорошо. Наш рабочий процесс по умолчанию — использовать установку пряжи, которая и выполняет эту работу, но для репозитория, в котором я запускал метод пряжи, установка заняла 56,24 секунды — не невероятно, и с учетом того, что конвейеры для этого репозитория занимают 10–20 минут, это немаловажный вклад. Как поживает булочка?
Господи, это даже отдаленно не близко — булке потребовалось всего 2,08 секунды. В настоящее время это, похоже, не повлияло на само задание (2 минуты 14 секунд против 2 минут 11 секунд), я предполагаю, потому что в настоящее время мы не используем образ Docker для конкретного пакета и не устанавливаем его на этапе задания. Однако наш директор Джон сообщил о сокращении времени на 53% при отдельном репо, поэтому после его принятия это может привести к серьезной экономии.
Для этого потребовалось быстро изменить файл gitlab-ci.yaml, включив в него этап установки.

Затем дополнительно включение файла Bunfig.toml, который по сути заменяет файл npmrc в корне репо.

Однако хорошие новости, похоже, заканчиваются на тестировании, поскольку, хотя возможности тестирования Bun кажутся такими же молниеносными, оно требует от вас заменить ваши шуточные макеты просто «mock» и «spyOn» (ничего страшного) и переписать тесты, чтобы не полагаться на них. пока неподдерживаемые шуточные функции, такие как toHaveBeenCalledWith (немного более серьезное дело, особенно в более крупных базах кода) и небольшие изменения, такие как удаление «await» из операторов перед ожиданием и перемещение «jest.timeout» в параметр тестовой функции.
Итак, каковы мои выводы?
Что касается новых проектов, я бы очень серьезно рассмотрел возможность принятия Bun 1.0 с самого начала и написания тестов, устраняющих пробелы. Что касается старых проектов, я буду с замиранием сердца ждать поддержки этих функций, чтобы сократить время тестирования до чего-то приемлемого, у меня пока нет времени на такое переписывание.