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