Skip to content

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:

bash
bun pm pack

Questo comando crea un file .tgz contenente tutti i file che verrebbero pubblicati su npm, seguendo le stesse regole di npm pack.

Esempi ​

Utilizzo base:

bash
bun pm pack
# Crea my-package-1.0.0.tgz nella directory corrente

Modalità silenziosa per scripting:

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

Destinazione personalizzata:

bash
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: --filename e --destination non possono essere usati contemporaneamente.

Modalità di output ​

Output predefinito:

bash
bun pm pack
txt
bun 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: 249B

Output silenzioso:

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

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

bash
bun pm bin
txt
/percorso/al/progetto/corrente/node_modules/.bin

Per stampare il percorso alla directory bin globale:

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

ls ​

Per stampare un elenco delle dipendenze installate nel progetto corrente e le loro versioni risolte, escludendo le loro dipendenze.

bash
bun pm ls
# o
bun list
txt
/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.4

Per stampare tutte le dipendenze installate, incluse le dipendenze di ordine n-esimo.

bash
bun pm ls --all
# o
bun list --all
txt
/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:

bash
bun pm whoami

hash ​

Per generare e stampare l'hash del lockfile corrente:

bash
bun pm hash

Per stampare la stringa usata per hashare il lockfile:

bash
bun pm hash-string

Per stampare l'hash memorizzato nel lockfile corrente:

bash
bun pm hash-print

cache ​

Per stampare il percorso alla cache globale dei moduli di Bun:

bash
bun pm cache

Per eliminare la cache globale dei moduli di Bun:

bash
bun pm cache rm

migrate ​

Per migrare il lockfile di un altro package manager senza installare nulla:

bash
bun pm migrate

untrusted ​

Per stampare le dipendenze non attendibili correnti con script:

bash
bun pm untrusted
txt
./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:

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

bash
bun pm default-trusted

vedi l'elenco corrente su GitHub qui

version ​

Per visualizzare la versione corrente del pacchetto e l'aiuto:

bash
bun pm version
txt
bun 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:

bash
bun pm version patch
txt
v1.0.1

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

bash
scripts.build              # notazione a punti
contributors[0]            # accesso array
workspaces.0               # punti con indice numerico
scripts[test:watch]        # parentesi per caratteri speciali

Esempi:

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

Bun a cura di www.bunjs.com.cn