Skip to content

import Bunx from "/ru/snippets/cli/bunx.mdx";

NOTE

`bunx` — это псевдоним для `bun x`. При установке `bun` команда `bunx` будет установлена автоматически.

Используйте bunx для автоматической установки и запуска пакетов из npm. Это аналог npx или yarn dlx в Bun.

bash
bunx cowsay "Hello world!"

NOTE

⚡️ **Скорость** — Благодаря быстрому времени запуска Bun, `bunx` работает [примерно в 100 раз быстрее](https://twitter.com/jarredsumner/status/1606163655527059458), чем `npx` для локально установленных пакетов.

Пакеты могут объявлять исполняемые файлы в поле "bin" своего package.json. Они известны как исполняемые файлы пакетов или бинарные файлы пакетов.

json
{
  // ... другие поля
  "name": "my-cli",
  "bin": {
    "my-cli": "dist/index.js"
  }
}

Эти исполняемые файлы обычно представляют собой простые JavaScript-файлы с shebang-строкой, указывающей, какая программа должна использоваться для их выполнения. Следующий файл указывает, что он должен выполняться с помощью node.

js
#!/usr/bin/env node

console.log("Hello world!");

Эти исполняемые файлы можно запускать с помощью bunx,

bash
bunx my-cli

Как и npx, bunx сначала проверяет наличие локально установленного пакета, а затем переходит к автоматической установке пакета из npm. Установленные пакеты будут сохранены в глобальном кэше Bun для будущего использования.

Аргументы и флаги

Чтобы передать дополнительные флаги и аргументы командной строки исполняемому файлу, разместите их после имени исполняемого файла.

bash
bunx my-cli --foo bar

Shebang-строки

По умолчанию Bun уважает shebang-строки. Если исполняемый файл помечен как #!/usr/bin/env node, Bun запустит процесс node для выполнения файла. Однако в некоторых случаях может быть желательно запускать исполняемые файлы с использованием среды выполнения Bun, даже если исполняемый файл указывает иное. Для этого добавьте флаг --bun.

bash
bunx --bun my-cli

Флаг --bun должен находиться перед именем исполняемого файла. Флаги, которые появляются после имени, передаются исполняемому файлу.

bash
bunx --bun my-cli # правильно
bunx my-cli --bun # неправильно

Флаг package

--package <pkg> или -p <pkg> — Запуск бинарного файла из конкретного пакета. Полезно, когда имя бинарного файла отличается от имени пакета:

bash
bunx -p renovate renovate-config-validator
bunx --package @angular/cli ng

Чтобы всегда использовать bun со скриптом, используйте shebang-строку.

js
#!/usr/bin/env bun

Bun от www.bunjs.com.cn