Skip to content

import Add from "/pt/snippets/cli/add.mdx";

Para adicionar um pacote específico:

bash
bun add preact

Para especificar uma versão, intervalo de versão ou tag:

bash
bun add zod@3.20.0
bun add zod@^3.0.0
bun add zod@latest

--dev

NOTE

**Alias** — `--development`, `-d`, `-D`

Para adicionar um pacote como dependência de desenvolvimento ("devDependencies"):

bash
bun add --dev @types/react
bun add -d @types/react

--optional

Para adicionar um pacote como dependência opcional ("optionalDependencies"):

bash
bun add --optional lodash

--peer

Para adicionar um pacote como dependência peer ("peerDependencies"):

bash
bun add --peer @types/bun

--exact

NOTE

**Alias** — `-E`

Para adicionar um pacote e fixar na versão resolvida, use --exact. Isso resolverá a versão do pacote e a adicionará ao seu package.json com um número de versão exato em vez de um intervalo de versão.

bash
bun add react --exact
bun add react -E

Isso adicionará o seguinte ao seu package.json:

json
{
  "dependencies": {
    // sem --exact
    "react": "^18.2.0", // isso corresponde >= 18.2.0 < 19.0.0

    // com --exact
    "react": "18.2.0" // isso corresponde apenas 18.2.0 exatamente
  }
}

Para visualizar uma lista completa de opções para este comando:

bash
bun add --help

--global

NOTE

**Nota** — Isso não modificaria o package.json da pasta do seu projeto atual. **Alias** - `bun add --global`, `bun add -g`, `bun install --global` e `bun install -g`

Para instalar um pacote globalmente, use a flag -g/--global. Isso não modificará o package.json do seu projeto atual. Normalmente isso é usado para instalar ferramentas de linha de comando.

bash
bun add --global cowsay # ou `bun add -g cowsay`
cowsay "Bun!"
txt
 ______
< Bun! >
 ------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Configurando o comportamento de instalação global

toml
[install]
# onde `bun add --global` instala pacotes
globalDir = "~/.bun/install/global"

# onde binários de pacotes instalados globalmente são linkados
globalBinDir = "~/.bun/bin"

Dependências confiáveis

Ao contrário de outros clientes npm, o Bun não executa scripts de ciclo de vida arbitrários para dependências instaladas, como postinstall. Estes scripts representam um risco de segurança potencial, pois podem executar código arbitrário na sua máquina.

Para dizer ao Bun para permitir scripts de ciclo de vida para um pacote específico, adicione o pacote a trustedDependencies no seu package.json.

json
{
  "name": "my-app",
  "version": "1.0.0",
  "trustedDependencies": ["my-trusted-package"] 
}

O Bun lê este campo e executará scripts de ciclo de vida para my-trusted-package.

Dependências Git

Para adicionar uma dependência de um repositório git público ou privado:

bash
bun add git@github.com:moment/moment.git

NOTE

Para instalar repositórios privados, seu sistema precisa das credenciais SSH apropriadas para acessar o repositório.

O Bun suporta uma variedade de protocolos, incluindo github, git, git+ssh, git+https e muitos mais.

json
{
  "dependencies": {
    "dayjs": "git+https://github.com/iamkun/dayjs.git",
    "lodash": "git+ssh://github.com/lodash/lodash.git#4.17.21",
    "moment": "git@github.com:moment/moment.git",
    "zod": "github:colinhacks/zod"
  }
}

Dependências de tarball

Um nome de pacote pode corresponder a um arquivo .tgz hospedado publicamente. Durante a instalação, o Bun baixará e instalará o pacote da URL do tarball especificada, em vez do registro de pacotes.

sh
bun add zod@https://registry.npmjs.org/zod/-/zod-3.21.4.tgz

Isso adicionará a seguinte linha ao seu package.json:

json
{
  "dependencies": {
    "zod": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz"
  }
}

Bun by www.bunjs.com.cn edit