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:
bun pm packEste 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:
bun pm pack
# Cria my-package-1.0.0.tgz no diretório atualModo silencioso para scripts:
TARBALL=$(bun pm pack --quiet)
echo "Criado: $TARBALL"Criado: my-package-1.0.0.tgzDestino customizado:
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:
--filenamee--destinationnão podem ser usados ao mesmo tempo.
Modos de saída
Saída padrão:
bun pm packbun 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: 249BSaída silenciosa:
bun pm pack --quietmy-package-1.0.0.tgzA 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:
bun pm bin/path/to/current/project/node_modules/.binPara imprimir o caminho para o diretório bin global:
bun pm bin -g<$HOME>/.bun/binls
Para imprimir uma lista de dependências instaladas no projeto atual e suas versões resolvidas, excluindo suas dependências.
bun pm ls
# ou
bun list/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.4Para imprimir todas as dependências instaladas, incluindo dependências de enésima ordem.
bun pm ls --all
# ou
bun list --all/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:
bun pm whoamihash
Para gerar e imprimir o hash do lockfile atual:
bun pm hashPara imprimir a string usada para fazer hash do lockfile:
bun pm hash-stringPara imprimir o hash armazenado no lockfile atual:
bun pm hash-printcache
Para imprimir o caminho para o cache global de módulos do Bun:
bun pm cachePara limpar o cache global de módulos do Bun:
bun pm cache rmmigrate
Para migrar o lockfile de outro gerenciador de pacotes sem instalar nada:
bun pm migrateuntrusted
Para imprimir dependências não confiáveis atuais com scripts:
bun pm untrusted./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:
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:
bun pm default-trustedveja a lista atual no GitHub aqui
version
Para exibir a versão atual do pacote e ajuda:
bun pm versionbun 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:
bun pm version patchv1.0.1Suporta 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:
scripts.build # notação de ponto
contributors[0] # acesso a array
workspaces.0 # ponto com índice numérico
scripts[test:watch] # colchetes para caracteres especiaisExemplos:
# 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