Il gruppo di comandi bun pm fornisce un insieme di utilità per lavorare con il package manager di Bun.
pack
Per creare un tarball del workspace corrente:
bun pm packQuesto comando crea un file .tgz contenente tutti i file che verrebbero pubblicati su npm, seguendo le stesse regole di npm pack.
Esempi
Utilizzo base:
bun pm pack
# Crea my-package-1.0.0.tgz nella directory correnteModalità silenziosa per scripting:
TARBALL=$(bun pm pack --quiet)
echo "Creato: $TARBALL"Creato: my-package-1.0.0.tgzDestinazione personalizzata:
bun pm pack --destination ./dist
# Salva il tarball nella directory ./dist/Opzioni
--dry-run: Esegue tutte le attività tranne scrivere il tarball su disco. Mostra cosa verrebbe incluso.--destination <dir>: Specifica la directory dove il tarball verrà salvato.--filename <name>: Specifica un nome file esatto per il tarball da salvare.--ignore-scripts: Salta l'esecuzione degli script pre/postpack e prepare.--gzip-level <0-9>: Imposta un livello di compressione gzip personalizzato, da 0 a 9 (il predefinito è 9).--quiet: Mostra solo il nome file del tarball, sopprimendo l'output verboso. Ideale per script e automazione.
Nota:
--filenamee--destinationnon possono essere usati contemporaneamente.
Modalità di output
Output predefinito:
bun pm packbun pack v1.2.19
packed 131B package.json
packed 40B index.js
my-package-1.0.0.tgz
Totale file: 2
Shasum: f2451d6eb1e818f500a791d9aace80b394258a90
Dimensione non compressa: 171B
Dimensione compressa: 249BOutput silenzioso:
bun pm pack --quietmy-package-1.0.0.tgzIl flag --quiet è particolarmente utile per flussi di lavoro di automazione dove hai bisogno di catturare il nome file del tarball generato per ulteriore elaborazione.
bin
Per stampare il percorso alla directory bin per il progetto locale:
bun pm bin/percorso/al/progetto/corrente/node_modules/.binPer stampare il percorso alla directory bin globale:
bun pm bin -g<$HOME>/.bun/binls
Per stampare un elenco delle dipendenze installate nel progetto corrente e le loro versioni risolte, escludendo le loro dipendenze.
bun pm ls
# o
bun list/percorso/al/progetto node_modules (135)
├── eslint@8.38.0
├── react@18.2.0
├── react-dom@18.2.0
├── typescript@5.0.4
└── zod@3.21.4Per stampare tutte le dipendenze installate, incluse le dipendenze di ordine n-esimo.
bun pm ls --all
# o
bun list --all/percorso/al/progetto 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
Stampa il tuo nome utente npm. Richiede di aver effettuato l'accesso (bunx npm login) con credenziali in bunfig.toml o .npmrc:
bun pm whoamihash
Per generare e stampare l'hash del lockfile corrente:
bun pm hashPer stampare la stringa usata per hashare il lockfile:
bun pm hash-stringPer stampare l'hash memorizzato nel lockfile corrente:
bun pm hash-printcache
Per stampare il percorso alla cache globale dei moduli di Bun:
bun pm cachePer eliminare la cache globale dei moduli di Bun:
bun pm cache rmmigrate
Per migrare il lockfile di un altro package manager senza installare nulla:
bun pm migrateuntrusted
Per stampare le dipendenze non attendibili correnti con script:
bun pm untrusted./node_modules/@biomejs/biome @1.8.3
» [postinstall]: node scripts/postinstall.js
Queste dipendenze hanno avuto i loro script del ciclo di vita bloccati durante l'installazione.trust
Per eseguire script per dipendenze non attendibili e aggiungere a trustedDependencies:
bun pm trust <nomi>Opzioni per il comando trust:
--all: Considera attendibili tutte le dipendenze non attendibili.
default-trusted
Per stampare l'elenco delle dipendenze attendibili predefinite:
bun pm default-trustedvedi l'elenco corrente su GitHub qui
version
Per visualizzare la versione corrente del pacchetto e l'aiuto:
bun pm versionbun pm version v1.3.3 (ca7428e9)
Versione corrente del pacchetto: v1.0.0
Incremento:
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 Usa la versione dall'ultimo tag git
1.2.3 Imposta una versione specifica
Opzioni:
--no-git-tag-version Salta le operazioni git
--allow-same-version Previene il lancio di errori se la versione è la stessa
--message=<val>, -m Messaggio di commit personalizzato, usa %s per la sostituzione della versione
--preid=<val> Identificatore prerelease (es. beta → 1.0.1-beta.0)
--force, -f Ignora il controllo della cronologia git non pulita
Esempi:
bun pm version patch
bun pm version 1.2.3 --no-git-tag-version
bun pm version prerelease --preid beta --message "Rilascio beta: %s"Per incrementare la versione in package.json:
bun pm version patchv1.0.1Supporta patch, minor, major, premajor, preminor, prepatch, prerelease, from-git, o versioni specifiche come 1.2.3. Di default crea un commit git e tag a meno che non venga usato --no-git-tag-version per saltare.
pkg
Gestisci i dati di package.json con operazioni get, set, delete e fix.
Tutti i comandi supportano la notazione a punti e parentesi:
scripts.build # notazione a punti
contributors[0] # accesso array
workspaces.0 # punti con indice numerico
scripts[test:watch] # parentesi per caratteri specialiEsempi:
# get
bun pm pkg get name # singola proprietà
bun pm pkg get name version # proprietà multiple
bun pm pkg get # intero package.json
bun pm pkg get scripts.build # proprietà annidata
# set
bun pm pkg set name="my-package" # proprietà semplice
bun pm pkg set scripts.test="jest" version=2.0.0 # proprietà multiple
bun pm pkg set {"private":"true"} --json # valori JSON con flag --json
# delete
bun pm pkg delete description # singola proprietà
bun pm pkg delete scripts.test contributors[0] # proprietà multiple/annidate
# fix
bun pm pkg fix # corregge automaticamente problemi comuni