Skip to content

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:

bash
bun pm pack

Este 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:

bash
bun pm pack
# Crea my-package-1.0.0.tgz en el directorio actual

Modo silencioso para scripting:

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

Destino personalizado:

bash
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: --filename y --destination no pueden usarse al mismo tiempo.

Modos de salida ​

Salida predeterminada:

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

Salida silenciosa:

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

La 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:

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

Para imprimir la ruta al directorio bin global:

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

ls ​

Para imprimir una lista de dependencias instaladas en el proyecto actual y sus versiones resueltas, excluyendo sus dependencias.

bash
bun pm ls
# o
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 las dependencias instaladas, incluyendo dependencias de n-ésimo orden.

bash
bun pm ls --all
# o
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 ​

Imprime tu nombre de usuario de npm. Requiere que hayas iniciado sesión (bunx npm login) con credenciales en bunfig.toml o .npmrc:

bash
bun pm whoami

hash ​

Para generar e imprimir el hash del lockfile actual:

bash
bun pm hash

Para imprimir la cadena usada para hashear el lockfile:

bash
bun pm hash-string

Para imprimir el hash almacenado en el lockfile actual:

bash
bun pm hash-print

cache ​

Para imprimir la ruta a la caché global de módulos de Bun:

bash
bun pm cache

Para limpiar la caché global de módulos de Bun:

bash
bun pm cache rm

migrate ​

Para migrar el lockfile de otro gestor de paquetes sin instalar nada:

bash
bun pm migrate

untrusted ​

Para imprimir dependencias no confiables actuales con 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 ejecutar scripts para dependencias no confiables y agregar a trustedDependencies:

bash
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:

bash
bun pm default-trusted

ver la lista actual en GitHub aquí

version ​

Para mostrar la versión actual del paquete y ayuda:

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 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:

bash
bun pm version patch
txt
v1.0.1

Soporta 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:

bash
scripts.build              # notación de puntos
contributors[0]            # acceso a array
workspaces.0               # puntos con índice numérico
scripts[test:watch]        # corchetes para caracteres especiales

Ejemplos:

bash
# 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

Bun por www.bunjs.com.cn editar