Поддержка Bun в Laravel Sail и Forge

Источник: «Support for Bun lands in Laravel Sail and Forge»
Свежий релиз Laravel Sail включает поддержку Bun, быстрой универсальной среды выполнения JavaScript. Узнайте, как начать использовать Bun в своих проектах Laravel уже сегодня.

В Laravel Sail и Laravel Forge появилась поддержка Bun, быстрой универсальной среды выполнения JavaScript. После обновления Sail вы можете запустить Bun следующим образом:

sail bun run ... # Запуск команды `bun`.
sail bunx ... # Запуск команды `bunx`.

Bun — это новый универсальный инструментарий для приложений на JavaScript и TypeScript, поставляемый в виде одного исполняемого файла, получившего меткое название bun. Как и npx, bunx запускает исполняемый файл пакета NPM и автоматически устанавливает пакет в глобальный общий кэш, если он не установлен в node_modules.

Давайте рассмотрим, как можно использовать bun в Sail или любом другом проекте Laravel.

Использование Bun в проекте Laravel

Чтобы начать использовать Bun в Laravel, сначала необходимо удалить существующий файл package-lock. Например, если вы используете npm, выполните следующие действия:

# Удаление package-lock.json
git rm package-lock.json
git commit -m"Remove package-lock.json" package-lock.json

# Установка зависимостей с помощью bun
sail bun install
[1.30ms] ".env"
bun install v1.0.0 (822a00c4)

Checked 20 installs across 43 packages (no changes) [41.00ms]

После завершения bun install можно добавить в git файл lock-файл:

git add bun.lockb
git commit -m "Install Bun" bun.lockb

Установка пакетов с помощью Bun

Для добавления новых зависимостей можно также использовать команду bun install. Допустим, вы хотите установить пакет laravel-precognition-vue с Laravel Precognition:

$ sail bun install laravel-precognition-vue

[1.05ms] ".env"
bun add v1.0.0 (822a00c4)

installed laravel-precognition-vue@0.5.1


9 packages installed [1.57s]

Команда build и dev с Vite

С помощью bun можно запустить команду build, собирающую зависимости Vite для продакшена:

$ sail bun run build
$ vite build
vite v4.4.9 building for production...
46 modules transformed.
public/build/manifest.json 0.25 kB │ gzip: 0.13 kB
public/build/assets/app-4ed993c7.js 0.00 kB │ gzip: 0.02 kB
public/build/assets/app-dbe23e4c.js 29.10 kB │ gzip: 11.64 kB
✓ built in 1.07s

Для рабочего процесса разработки можно выполнить команду dev аналогичным образом:

sail bun run dev

Обновление Sail

Чтобы получить последнюю версию Laravel Sail в существующем приложении, обновите Sail через composer:

composer update larvel/sail
git add composer.lock
git commit -m"Update sail" composer.json

# Сборка последних образов Docker
sail down
sail build --pull
sail up -d

После сборки последней версии Sail можно убедиться, что bun установлен, выполнив следующие действия:

sail bun --version
1.0.0

Выражаем благодарность Dmytro Morozov, внёсшему вклад в поддержку Bun! Подробнее см. laravel/sail Pull Request #616.

Bun — это универсальный высокопроизводительный набор инструментов для JavaScript, который после двух лет разработки выпустил версию 1.0. Он используется как:

  • среда выполнения JavaScript (замена Node.js)
  • Менеджер пакетов (замена npm, yarn, pnpm)
  • Bundler (совместим с esbuild API)
  • Прогонщик тестов (замена vitest, jest и т.д.)
  • Программа запуска пакетов (замена npx, pnpx)

В дополнение к практически полной совместимости с API Node.js в нем реализованы такие дополнительные возможности, как:

  • Совместимость с синтаксисом ESM и CJS одновременно
  • Поддержка TypeScript без транспиляции
  • Внутренний транспилятор для JSX/TSX
  • JavaScript-макросы
  • и т.д.

Я думаю, что Bun — это хороший инструмент, даже если он используется только как менеджер пакетов. Однако я полагаю, что в будущем он может быть рассмотрен и как основной бандлер для Laravel.

Дополнительные материалы

Предыдущая Статья

Введение в View Transitions API

Следующая Статья

Использование нескольких баз данных в проекте Laravel