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