Skip to content

O grupo de comandos bun pm fornece um conjunto de utilitários para trabalhar com o gerenciador de pacotes do Bun.

pack

Para criar um tarball do workspace atual:

bash
bun pm pack

Este comando cria um arquivo .tgz contendo todos os arquivos que seriam publicados no npm, seguindo as mesmas regras do npm pack.

Exemplos

Uso básico:

bash
bun pm pack
# Cria my-package-1.0.0.tgz no diretório atual

Modo silencioso para scripts:

bash
TARBALL=$(bun pm pack --quiet)
echo "Criado: $TARBALL"
txt
Criado: my-package-1.0.0.tgz

Destino customizado:

bash
bun pm pack --destination ./dist
# Salva o tarball no diretório ./dist/

Opções

  • --dry-run: Executar todas as tarefas exceto escrever o tarball no disco. Mostra o que seria incluído.
  • --destination <dir>: Especificar o diretório onde o tarball será salvo.
  • --filename <name>: Especificar um nome exato de arquivo para o tarball ser salvo.
  • --ignore-scripts: Pular a execução dos scripts pre/postpack e prepare.
  • --gzip-level <0-9>: Definir um nível de compressão gzip customizado, variando de 0 a 9 (padrão é 9).
  • --quiet: Apenas mostrar o nome do arquivo tarball, suprimindo saída verbosa. Ideal para scripts e automação.

Nota: --filename e --destination não podem ser usados ao mesmo tempo.

Modos de saída

Saída padrão:

bash
bun pm pack
txt
bun pack v1.2.19

packed 131B package.json
packed 40B index.js

my-package-1.0.0.tgz

Total files: 2
Shasum: f2451d6eb1e818f500a791d9aace80b394258a90
Unpacked size: 171B
Packed size: 249B

Saída silenciosa:

bash
bun pm pack --quiet
txt
my-package-1.0.0.tgz

A flag --quiet é particularmente útil para fluxos de trabalho de automação onde você precisa capturar o nome do arquivo tarball gerado para processamento posterior.

bin

Para imprimir o caminho para o diretório bin do projeto local:

bash
bun pm bin
txt
/path/to/current/project/node_modules/.bin

Para imprimir o caminho para o diretório bin global:

bash
bun pm bin -g
txt
<$HOME>/.bun/bin

ls

Para imprimir uma lista de dependências instaladas no projeto atual e suas versões resolvidas, excluindo suas dependências.

bash
bun pm ls
# ou
bun list
txt
/path/to/project node_modules (135)
├── eslint@8.38.0
├── react@18.2.0
├── react-dom@18.2.0
├── typescript@5.0.4
└── zod@3.21.4

Para imprimir todas as dependências instaladas, incluindo dependências de enésima ordem.

bash
bun pm ls --all
# ou
bun list --all
txt
/path/to/project node_modules (135)
├── @eslint-community/eslint-utils@4.4.0
├── @eslint-community/regexpp@4.5.0
├── @eslint/eslintrc@2.0.2
├── @eslint/js@8.38.0
├── @nodelib/fs.scandir@2.1.5
├── @nodelib/fs.stat@2.0.5
├── @nodelib/fs.walk@1.2.8
├── acorn@8.8.2
├── acorn-jsx@5.3.2
├── ajv@6.12.6
├── ansi-regex@5.0.1
├── ...

whoami

Imprimir seu nome de usuário npm. Requer que você esteja logado (bunx npm login) com credenciais em bunfig.toml ou .npmrc:

bash
bun pm whoami

hash

Para gerar e imprimir o hash do lockfile atual:

bash
bun pm hash

Para imprimir a string usada para fazer hash do lockfile:

bash
bun pm hash-string

Para imprimir o hash armazenado no lockfile atual:

bash
bun pm hash-print

cache

Para imprimir o caminho para o cache global de módulos do Bun:

bash
bun pm cache

Para limpar o cache global de módulos do Bun:

bash
bun pm cache rm

migrate

Para migrar o lockfile de outro gerenciador de pacotes sem instalar nada:

bash
bun pm migrate

untrusted

Para imprimir dependências não confiáveis atuais com scripts:

bash
bun pm untrusted
txt
./node_modules/@biomejs/biome @1.8.3
 » [postinstall]: node scripts/postinstall.js

These dependencies had their lifecycle scripts blocked during install.

trust

Para executar scripts para dependências não confiáveis e adicionar a trustedDependencies:

bash
bun pm trust <names>

Opções para o comando trust:

  • --all: Confiar em todas as dependências não confiáveis.

default-trusted

Para imprimir a lista padrão de dependências confiáveis:

bash
bun pm default-trusted

veja a lista atual no GitHub aqui

version

Para exibir a versão atual do pacote e ajuda:

bash
bun pm version
txt
bun pm version v1.3.3 (ca7428e9)
Current package version: v1.0.0

Increment:
  patch      1.0.0 → 1.0.1
  minor      1.0.0 → 1.1.0
  major      1.0.0 → 2.0.0
  prerelease 1.0.0 → 1.0.1-0
  prepatch   1.0.0 → 1.0.1-0
  preminor   1.0.0 → 1.1.0-0
  premajor   1.0.0 → 2.0.0-0
  from-git   Usar versão da tag git mais recente
  1.2.3      Definir versão específica

Options:
  --no-git-tag-version Pular operações git
  --allow-same-version Previne lançar erro se a versão for a mesma
  --message=<val>, -m  Mensagem de commit customizada, use %s para substituição de versão
  --preid=<val>        Identificador de prerelease (i.e beta → 1.0.1-beta.0)
  --force, -f          Ignorar verificação de histórico git sujo

Examples:
  bun pm version patch
  bun pm version 1.2.3 --no-git-tag-version
  bun pm version prerelease --preid beta --message "Release beta: %s"

Para atualizar a versão no package.json:

bash
bun pm version patch
txt
v1.0.1

Suporta patch, minor, major, premajor, preminor, prepatch, prerelease, from-git, ou versões específicas como 1.2.3. Por padrão cria commit e tag git a menos que --no-git-tag-version seja usado para pular.

pkg

Gerenciar dados do package.json com operações get, set, delete e fix.

Todos os comandos suportam notação de ponto e colchetes:

bash
scripts.build              # notação de ponto
contributors[0]            # acesso a array
workspaces.0               # ponto com índice numérico
scripts[test:watch]        # colchetes para caracteres especiais

Exemplos:

bash
# get
bun pm pkg get name                               # propriedade única
bun pm pkg get name version                       # múltiplas propriedades
bun pm pkg get                                    # package.json inteiro
bun pm pkg get scripts.build                      # propriedade aninhada

# set
bun pm pkg set name="my-package"                  # propriedade simples
bun pm pkg set scripts.test="jest" version=2.0.0  # múltiplas propriedades
bun pm pkg set {"private":"true"} --json          # valores JSON com flag --json

# delete
bun pm pkg delete description                     # propriedade única
bun pm pkg delete scripts.test contributors[0]    # múltiplas/aninhadas

# fix
bun pm pkg fix                                    # corrigir automaticamente problemas comuns

Bun by www.bunjs.com.cn edit