Использование Bun в качестве менеджера пакетов в PHP проектах

Источник: «Use Bun as your package manager in any PHP project»
Насладитесь быстрым процессом создания зависимостей front-end в ваших PHP-проектах благодаря возможностям управления пакетами Bun.

Bun — это быстрый набор инструментов JavaScript все в одном. Его можно использовать как среду выполнения (он гораздо быстрее, чем Node.js), как программу для запуска тестов и даже как менеджер пакетов. Именно это интересует нас как PHP-разработчиков.

Зачем переходить с NPM, pnpm или Yarn

Большинство PHP-разработчиков не используют Node.js ни для чего, кроме компиляции фронтенд ресурсов. Так зачем тратить время на переход на Bun вместо того, чтобы использовать обычную среду исполнения Node.js?

Если вы действительно протестируете Bun, то заметите, насколько он невероятно быстрее Node.js. До 30 раз!

  1. Ваши front-end зависимости будут устанавливаться быстрее.
  2. Ваши ресурсы будут компилироваться быстрее.
  3. Ваша среда непрерывной интеграции также будет работать быстрее, поскольку установка и компиляция front-end зависимостей занимает меньше времени.

Как установить Bun на macOS с помощью Homebrew

Установка Bun на macOS не может быть проще. Просто подключите источник oven-sh/bun с помощью команды brew tap oven-sh/bun и установите Bun, выполнив команду brew install bun.

Как установить в Linux и WSL

Установка Bun в Linux так же проста, как и в macOS. Выполните команду curl -fsSL https://bun.sh/install | bash. Вот и все!

Пользователям Linux рекомендуется сначала убедиться в том, что установлен пакет unzip. Также необходимо установить ядро не ниже версии 5.1, хотя лучше использовать версию 5.6 или выше.

Как установить Bun под Windows

Пока, к сожалению, возможности менеджера пакетов Bun недоступны для Windows. Но это не должно быть проблемой, если вы используете WSL.

В настоящее время существует экспериментальная версия для Windows, но использовать её в продакшне не рекомендуется.

Освободите место для Bun и удалите package-lock.json, pnpm-lock.yaml или yarn.lock

Менеджер пакетов, который вы используете в своих PHP-проектах, полностью зависит от ваших предпочтений. Что является отличной новостью для Bun!

Если вы использовали NPM или pnpm, удалите их lock-файлы, поскольку они вам больше не понадобятся, так как Bun по умолчанию использует свой собственный lock-файл bun.lockb.

Если бы вы использовали NPM:

rm package-lock.json

Если вы использовали pnpm:

rm pnpm-lock.yaml

А если бы вы использовали Yarn:

rm yarn.lock

Установка зависимостей front-end с помощью Bun

Для установки зависимостей с помощью Bun используйте команду bun install. Итак, насколько быстро это происходит? Держу пари, вы этого не ожидали!

Кстати, в случае возникновения проблем, если вы хотите отключить кэш, используйте bun install --no-cache.

Для получения дополнительной информации и опций обратитесь к официальной документации команды bun install.

Добавление пакета с помощью Bun

Добавление пакета с помощью Bun можно легко выполнить с помощью команды bun add. Вы, несомненно, оцените, насколько это быстро.

Приведём пример с 3 пакетами:

bun add tailwindcss autoprefixer postcss

Дополнительную информацию и опции можно найти в официальной документации к команде bun add.

Удаление пакета с помощью Bun

Удаление пакета с помощью Bun можно легко выполнить с помощью команды bun remove. Вы наверняка оцените, насколько это быстро.

В качестве примера возьмём Axios, поскольку собственный Fetch API JavaScript не менее прост в использовании:

bun remove axios

Дополнительную информацию и опции можно найти в официальной документации к команде bun remove.

Запуск скриптов с помощью Bun

Bun интегрируется в существующий рабочий процесс без каких-либо проблем. Запустите скрипты, определённые в файле package.json, как и раньше, используя bun run.

Например, у вас в PHP-процессе может быть процесс компиляции front-end ресурсов:

bun run dev

Дополнительную информацию и опции можно найти в официальной документации к команде bun run.

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

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

Laravel: Шифрование данных моделей с помощью кастов

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

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