Come abilitare e utilizzare pnpm in ServBay
pnpm
è un moderno ed efficiente gestore di pacchetti per Node.js, progettato per risolvere le problematiche che i gestori tradizionali (come npm
e yarn
) incontrano nella gestione delle dipendenze. Utilizzando un file system indirizzato per contenuto e collegamenti fisici/simbolici, pnpm
riduce significativamente l'occupazione di spazio su disco e velocizza notevolmente il processo di installazione. Per gli sviluppatori che utilizzano ServBay per lo sviluppo Node.js, conoscere pnpm
può ottimizzare in modo efficace la gestione delle dipendenze del progetto.
Il pacchetto Node.js incluso in ServBay integra corepack
, uno strumento sperimentale ufficiale di Node.js, progettato per gestire e abilitare specifiche versioni dei gestori di pacchetti (come npm
, yarn
, pnpm
). Generalmente, dopo aver installato Node.js di ServBay, puoi abilitare pnpm
tramite il comando corepack
.
Come abilitare pnpm
Se noti che il comando pnpm
non è disponibile, solitamente è perché non è ancora stato abilitato tramite corepack
. Segui questi passaggi per attivarlo:
Apri il terminale.
Inserisci il seguente comando per abilitare
pnpm
tramitecorepack
:bashcorepack enable pnpm
1Se il comando viene eseguito con successo, di solito non viene stampato nulla sul terminale. Questo indica che
corepack
ha collegato il comandopnpm
al sistema.Verifica che
pnpm
sia stato attivato correttamente e controlla la versione:bashpnpm -v
1Eseguendo questo comando dovrebbe essere mostrato il numero di versione corrente di
pnpm
, ad esempio:bash9.1.0
1Se il terminale mostra la versione, significa che
pnpm
è pronto all'uso.
Avvisi di download da corepack
Quando utilizzi il comando pnpm
, se compare un avviso simile al seguente, significa che corepack
sta scaricando o aggiornando la versione specifica di pnpm
necessaria. Si tratta di un comportamento normale di corepack
, pensato per garantire che tu stia usando la versione richiesta o più recente di pnpm
per il progetto.
bash
$ pnpm -v
! Corepack is about to download https://registry.npmjs.org/pnpm/-/pnpm-9.0.6.tgz
? Do you want to continue? [Y/n]
1
2
3
2
3
Digita Y
e premi Invio per consentire a corepack
di scaricare e continuare a eseguire il comando pnpm
. Una volta completato il download, il comando verrà eseguito normalmente mostrando la versione (o il risultato del comando inserito).
Vantaggi principali di pnpm e esempi d’uso
pnpm
nasce con l'obiettivo di gestire le dipendenze in modo efficiente. Tutti i pacchetti vengono archiviati in uno storage globale indirizzato per contenuto, ogni versione viene registrata una sola volta. Quando il progetto necessita di una dipendenza, pnpm
crea un collegamento fisico dallo storage globale, mentre la cartella node_modules
del progetto usa link simbolici per mantenere una struttura piatta. Diversamente da npm
, che può generare “dipendenze fantasma”, pnpm
limita rigorosamente i moduli accessibili: solo le dipendenze dichiarate possono essere direttamente utilizzate.
Questo approccio garantisce alcuni vantaggi notevoli:
- Risparmio di spazio su disco: i progetti condividono gli stessi file di dipendenza per una determinata versione, evitando duplicazioni.
- Installazione rapida: spesso i file delle dipendenze sono già presenti nello storage globale, quindi bastano solo i collegamenti, rendendo il processo molto più veloce di un download o copia.
- Struttura delle dipendenze rigorosa: elimina i problemi delle dipendenze fantasma, rendendo la gestione delle dipendenze più chiara e controllabile.
Ecco alcuni dei comandi pnpm
più comuni nell’ambiente ServBay:
Supponiamo che il tuo progetto si trovi in una sottocartella della root dei siti ServBay, come /Applications/ServBay/www/my-servbay-app
.
Installazione delle dipendenze del progetto
Accedi alla directory del progetto e usa il comando pnpm install
per installare tutte le dipendenze definite in package.json
:
bash
cd /Applications/ServBay/www/my-servbay-app
pnpm install
1
2
2
pnpm
controllerà lo storage globale, scaricherà i pacchetti mancanti e creerà i collegamenti nella cartella node_modules
del progetto.
Aggiunta di una nuova dipendenza
Per aggiungere una nuova dipendenza al progetto, ad esempio lodash
:
bash
pnpm add lodash
1
Il pacchetto lodash
verrà scaricato (se non ancora presente nello storage globale), saranno creati i collegamenti e aggiornati automaticamente i file package.json
e pnpm-lock.yaml
del progetto.
Rimozione di una dipendenza
Per rimuovere una dipendenza non più necessaria, come lodash
:
bash
pnpm remove lodash
1
La dipendenza verrà eliminata dal progetto e i file package.json
e pnpm-lock.yaml
verranno aggiornati di conseguenza.
Esecuzione degli script
Puoi usare pnpm
per eseguire gli script definiti nella sezione scripts
di package.json
:
bash
pnpm run dev
# oppure in forma abbreviata
pnpm dev
1
2
3
2
3
Esecuzione di comandi dei pacchetti (pnpx)
Analogamente a npx
, pnpm
mette a disposizione pnpx
(o direttamente pnpm exec
) per eseguire i comandi presenti nella cartella node_modules/.bin
del progetto, senza doverli installare globalmente:
bash
pnpm exec webpack --version
# oppure in forma abbreviata
pnpx webpack --version
1
2
3
2
3
Conclusione
Grazie al comando corepack enable pnpm
, puoi abilitare facilmente pnpm
nell’ambiente Node.js di ServBay. Sfruttando la gestione avanzata delle dipendenze di pnpm
, puoi aumentare sensibilmente la velocità d’installazione delle dipendenze e l’efficienza nello sviluppo di progetti Node.js, risparmiando spazio prezioso su disco. Per gli utenti ServBay che desiderano la migliore esperienza di sviluppo, pnpm
è senza dubbio uno strumento altamente consigliato.