El grupo de comandos bun pm proporciona un conjunto de utilidades para trabajar con el gestor de paquetes de Bun.
pack
Para crear un tarball del espacio de trabajo actual:
bun pm packEste comando crea un archivo .tgz que contiene todos los archivos que se publicarían en npm, siguiendo las mismas reglas que npm pack.
Ejemplos
Uso básico:
bun pm pack
# Crea my-package-1.0.0.tgz en el directorio actualModo silencioso para scripting:
TARBALL=$(bun pm pack --quiet)
echo "Creado: $TARBALL"Creado: my-package-1.0.0.tgzDestino personalizado:
bun pm pack --destination ./dist
# Guarda el tarball en el directorio ./dist/Opciones
--dry-run: Realiza todas las tareas excepto escribir el tarball en disco. Muestra qué se incluiría.--destination <dir>: Especifica el directorio donde se guardará el tarball.--filename <name>: Especifica un nombre exacto de archivo para el tarball.--ignore-scripts: Omite ejecutar scripts pre/postpack y prepare.--gzip-level <0-9>: Establece un nivel de compresión gzip personalizado, de 0 a 9 (el predeterminado es 9).--quiet: Solo muestra el nombre del archivo tarball, suprimiendo la salida verbosa. Ideal para scripts y automatización.
Nota:
--filenamey--destinationno pueden usarse al mismo tiempo.
Modos de salida
Salida predeterminada:
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: 249BSalida silenciosa:
bun pm pack --quietmy-package-1.0.0.tgzLa bandera --quiet es particularmente útil para flujos de trabajo de automatización donde necesitas capturar el nombre del archivo tarball generado para procesamiento adicional.
bin
Para imprimir la ruta al directorio bin para el proyecto local:
bun pm bin/path/to/current/project/node_modules/.binPara imprimir la ruta al directorio bin global:
bun pm bin -g<$HOME>/.bun/binls
Para imprimir una lista de dependencias instaladas en el proyecto actual y sus versiones resueltas, excluyendo sus dependencias.
bun pm ls
# o
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 las dependencias instaladas, incluyendo dependencias de n-ésimo orden.
bun pm ls --all
# o
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
Imprime tu nombre de usuario de npm. Requiere que hayas iniciado sesión (bunx npm login) con credenciales en bunfig.toml o .npmrc:
bun pm whoamihash
Para generar e imprimir el hash del lockfile actual:
bun pm hashPara imprimir la cadena usada para hashear el lockfile:
bun pm hash-stringPara imprimir el hash almacenado en el lockfile actual:
bun pm hash-printcache
Para imprimir la ruta a la caché global de módulos de Bun:
bun pm cachePara limpiar la caché global de módulos de Bun:
bun pm cache rmmigrate
Para migrar el lockfile de otro gestor de paquetes sin instalar nada:
bun pm migrateuntrusted
Para imprimir dependencias no confiables actuales con 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 ejecutar scripts para dependencias no confiables y agregar a trustedDependencies:
bun pm trust <names>Opciones para el comando trust:
--all: Confiar en todas las dependencias no confiables.
default-trusted
Para imprimir la lista predeterminada de dependencias confiables:
bun pm default-trustedver la lista actual en GitHub aquí
version
Para mostrar la versión actual del paquete y ayuda:
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 versión desde la última etiqueta git
1.2.3 Establecer versión específica
Options:
--no-git-tag-version Omitir operaciones git
--allow-same-version Prevenir lanzar error si la versión es la misma
--message=<val>, -m Mensaje de confirmación personalizado, usar %s para sustitución de versión
--preid=<val> Identificador de prerelease (ej beta → 1.0.1-beta.0)
--force, -f Omitir verificación de historial git sucio
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 actualizar la versión en package.json:
bun pm version patchv1.0.1Soporta patch, minor, major, premajor, preminor, prepatch, prerelease, from-git, o versiones específicas como 1.2.3. Por defecto crea confirmación git y etiqueta a menos que se use --no-git-tag-version para omitir.
pkg
Gestionar datos de package.json con operaciones get, set, delete, y fix.
Todos los comandos soportan notación de puntos y corchetes:
scripts.build # notación de puntos
contributors[0] # acceso a array
workspaces.0 # puntos con índice numérico
scripts[test:watch] # corchetes para caracteres especialesEjemplos:
# get
bun pm pkg get name # propiedad única
bun pm pkg get name version # múltiples propiedades
bun pm pkg get # package.json completo
bun pm pkg get scripts.build # propiedad anidada
# set
bun pm pkg set name="my-package" # propiedad simple
bun pm pkg set scripts.test="jest" version=2.0.0 # múltiples propiedades
bun pm pkg set {"private":"true"} --json # valores JSON con bandera --json
# delete
bun pm pkg delete description # propiedad única
bun pm pkg delete scripts.test contributors[0] # múltiples/anidadas
# fix
bun pm pkg fix # corregir problemas comunes automáticamente