Skip to content

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

NOTE

`bunx` é um alias para `bun x`. O `bunx` CLI será instalado automaticamente quando você instalar o `bun`.

Use bunx para instalar automaticamente e executar pacotes do npm. É o equivalente do Bun ao npx ou yarn dlx.

bash
bunx cowsay "Hello world!"

NOTE

⚡️ **Velocidade** — Com os tempos de inicialização rápidos do Bun, `bunx` é [cerca de 100x mais rápido](https://twitter.com/jarredsumner/status/1606163655527059458) que `npx` para pacotes instalados localmente.

Pacotes podem declarar executáveis no campo "bin" do seu package.json. Estes são conhecidos como executáveis de pacote ou binários de pacote.

json
{
  // ... outros campos
  "name": "my-cli",
  "bin": {
    "my-cli": "dist/index.js"
  }
}

Estes executáveis são normalmente arquivos JavaScript simples marcados com uma linha shebang para indicar qual programa deve ser usado para executá-los. O seguinte arquivo indica que deve ser executado com node.

js
#!/usr/bin/env node

console.log("Hello world!");

Estes executáveis podem ser executados com bunx,

bash
bunx my-cli

Assim como npx, bunx verificará primeiro um pacote instalado localmente e, em seguida, voltará para instalar automaticamente o pacote do npm. Os pacotes instalados serão armazenados no cache global do Bun para uso futuro.

Argumentos e flags

Para passar flags e argumentos de linha de comando adicionais para o executável, coloque-os após o nome do executável.

bash
bunx my-cli --foo bar

Shebangs

Por padrão, o Bun respeita shebangs. Se um executável estiver marcado com #!/usr/bin/env node, o Bun iniciará um processo node para executar o arquivo. No entanto, em alguns casos, pode ser desejável executar executáveis usando o runtime do Bun, mesmo que o executável indique o contrário. Para fazer isso, inclua a flag --bun.

bash
bunx --bun my-cli

A flag --bun deve aparecer antes do nome do executável. Flags que aparecem depois do nome são passadas para o executável.

bash
bunx --bun my-cli # bom
bunx my-cli --bun # ruim

Flag de pacote

--package <pkg> ou -p <pkg> - Executar binário de um pacote específico. Útil quando o nome do binário difere do nome do pacote:

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

Para forçar o bun a ser sempre usado com um script, use um shebang.

js
#!/usr/bin/env bun

Bun by www.bunjs.com.cn edit