Skip to content
ai news

Bun только что уничтожил Concurrently.

Последнее обновление Bun — это не просто прирост производительности; это прямая атака на ключевую часть вашего стека разработки. Узнайте, как эта единственная функция устраняет зависимость, на которую вы полагались годами.

Jonah Park
Bun только что уничтожил Concurrently.

Тихий убийца зависимостей

Недавно вышел Bun 1.4 — значительный переписанный на Rust релиз, который принес не только улучшения производительности в среду выполнения JavaScript. Это обновление укрепляет позиции Bun как универсального инструментария, стремящегося объединить утилиты разработчика в единую связную платформу. Это стратегический шаг к более интегрированной среде разработки.

Ключевым элементом влияния Bun 1.4 является новый встроенный исполнитель скриптов, который нативно обрабатывает параллельное и последовательное выполнение скриптов из package.json. Эта возможность делает сторонние инструменты, такие как concurrently и npm-run-all, практически ненужными для многих проектов, поглощая функциональность, которая ранее требовала внешних зависимостей. Теперь разработчики могут использовать флаг --parallel для одновременного запуска нескольких скриптов.

Интегрированный исполнитель предоставляет важные функции, включая префиксный вывод для ясности, сопоставление по шаблону (glob matching) для выбора скриптов и фильтрацию рабочих областей (workspace). Также предусмотрена опция, позволяющая другим скриптам продолжать работу, даже если один из них завершился с ошибкой, что повышает надежность. Этот внутренний механизм оптимизирует сложные рабочие процессы разработки непосредственно внутри Bun.

Это поглощение распространенных инструментов является примером более широкой стратегии Bun по упрощению экосистемы JavaScript. Предоставляя нативные альтернативы, Bun активно сокращает раздувание node_modules и упрощает конфигурацию проектов, отходя от фрагментированных цепочек инструментов. Это предлагает более унифицированный и эффективный опыт разработки.

Раскройте мощь параллелизма нативно

Bun 1.4 представляет нативный флаг --parallel, фундаментально меняющий способ выполнения нескольких скриптов package.json разработчиками. Это улучшение устраняет необходимость во внешних инструментах, таких как concurrently или npm-run-all, оптимизируя рабочие процессы разработки непосредственно в Bun. Теперь пользователи могут запускать несколько серверов разработки или вотчеров одновременно одной командой.

Выполняйте скрипты параллельно, перечисляя их после bun run --parallel. Например, bun run --parallel "dev:frontend" "dev:backend" запускает обе задачи параллельно. Это повторяет распространенные настройки package.json, где dev:frontend может запускать React-сервер, а dev:backend — Node.js API.

Параллельное выполнение сопровождается улучшениями удобства использования. Вывод каждого параллельного скрипта автоматически включает префикс с именем, проясняющий, какой процесс сгенерировал какой лог. Разработчики также могут использовать glob matching; bun run --parallel "dev:*" выполнит все скрипты, соответствующие префиксу dev:, такие как dev:frontend и dev:backend, без явного перечисления.

Дополнительный контроль доступен через опцию --continue-on-error. Этот флаг гарантирует, что некритичный сбой скрипта, например, ошибки линтера, не остановит всю среду разработки. Другие параллельные процессы, такие как активные серверы разработки, продолжают работать без прерываний, сохраняя непрерывность рабочего процесса. Эта функция повышает надежность в сложных многосервисных средах разработки.

За пределами параллелизма: управляйте своим потоком

Bun 1.4 расширяет свои возможности нативного выполнения скриптов за пределы параллельной обработки с введением флага --sequential. Эта дополнительная функция утверждает Bun как полноценный интегрированный task runner, устраняя необходимость во внешних npm-пакетах для управления сложными рабочими процессами скриптов.

Флаг --sequential гарантирует выполнение задач в заданном порядке, что критически важно для множества сценариев разработки и развертывания, где существуют зависимости между этапами. Конкретные примеры использования:

  • Завершение миграций базы данных перед запуском сервера.
  • Полное выполнение процесса сборки перед запуском набора тестов.
  • Выполнение последовательных операций по наполнению данными, где целостность данных зависит от порядка вставки.

Bun поддерживает единообразный опыт разработчика как при параллельных, так и при последовательных операциях. Разработчики используют тот же элегантный синтаксис скриптов package.json, получая преимущество в виде четкого вывода с префиксами, который привязывает логи непосредственно к исходному скрипту, что упрощает отладку и мониторинг.

Эта согласованность распространяется на расширенные возможности фильтрации, позволяя точно контролировать выполнение скриптов в рабочем пространстве, что особенно полезно в средах monorepo. Для получения полной информации об этих параметрах фильтрации обратитесь к bun --filter | Bun Docs. Флаг Bun --sequential наряду с --parallel обеспечивает надежную встроенную оркестрацию скриптов, упрощая настройку проекта и значительно снижая зависимость от таких инструментов, как concurrently или npm-run-all.

Нравится статья? Получайте такие каждое утро на почту.

одно письмо в день · отписка в два клика · без сторонних трекеров

Суперсила Monorepo: фильтрация рабочих пространств

Bun 1.4 представляет флаг --filter, значительное улучшение для управления monorepo. Эта функция позволяет разработчикам выбирать конкретные пакеты внутри рабочего пространства при выполнении скриптов, напрямую оптимизируя сложные рабочие процессы проекта. Она решает давнюю проблему в крупномасштабных средах разработки, выходя за рамки обычного выполнения скриптов.

Ранее координация команд между многочисленными подпакетами часто требовала написания пользовательских shell-скриптов или сложной настройки инструментов с помощью внешних утилит, таких как Lerna или Nx. С помощью --filter Bun упрощает этот процесс нативно, встраивая поддержку рабочих пространств в свое ядро. Например, чтобы запустить тесты только для конкретного backend-сервиса, разработчики выполняют bun run test --filter=@my-app/backend.

Эта команда напрямую нацелена на пакет @my-app/backend, изолируя выполнение тестов без запуска операций для несвязанных компонентов проекта. Возможность выходит за рамки тестирования и применяется к командам сборки, линтинга или сервера разработки во всем workspace. Это обеспечивает гранулярный и эффективный контроль над операциями с несколькими пакетами.

Флаг --filter радикально снижает зависимость от специализированных скриптовых решений, которые становятся трудными в поддержке и отладке по мере масштабирования проектов. Эта встроенная интеграция укрепляет полезность Bun для организаций, управляющих обширными кодовыми базами и сложными зависимостями. Она позиционирует Bun 1.4 как надежный универсальный инструмент для запуска задач в workspaces корпоративного уровня.

Часто задаваемые вопросы

Что нового в Bun 1.4 для запуска скриптов?

Bun 1.4 представил встроенную поддержку запуска скриптов из package.json параллельно (--parallel) или последовательно (--sequential), устраняя необходимость в сторонних пакетах, таких как concurrently или npm-run-all.

Как скриптовый движок Bun обрабатывает ошибки?

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

Могу ли я запускать скрипты для конкретных пакетов в monorepo с помощью Bun?

Да, Bun включает флаг --filter, который позволяет вам выбирать конкретные пакеты внутри рабочего пространства (monorepo), обеспечивая точное выполнение команд в рамках вашего проекта.

Поддерживает ли Bun только параллельные скрипты?

Нет, Bun поддерживает как параллельное, так и последовательное выполнение скриптов. Флаг --sequential запускает скрипты один за другим, предлагая те же возможности префиксного вывода и фильтрации, что и параллельный запуск.

Почему Bun 1.4 называют переписанным на Rust?

В транскрипции видео Bun 1.4 упоминается как «переписанный на Rust», что указывает на значительные архитектурные изменения, при которых основные части среды выполнения были переписаны на языке программирования Rust для повышения производительности и безопасности.

Found this useful? Share it.

For builders

Want Stork to write one of these about your product?

Send us a URL. We use the product, form a view, and publish what we actually think — in 8 languages, labeled Sponsored, with no copy approval on your side. That last part is what makes it worth quoting.

See how it works$500 · AI tools & software only