È la fine dell'anno ed è stato un buon anno per pnpm, quindi vediamo come è andata.
Utilizzo
Statistiche di download
Il mio obiettivo quest'anno era battere Bower per numero di download. Siamo stati in grado di raggiungere questo obiettivo a novembre:
pnpm è stato scaricato circa 3 volte in più nel 2021 rispetto al 2020:
Queste statistiche non misurano nemmeno tutti i diversi modi in cui pnpm può essere installato! Misurano solo i download del pacchetto pnpm di npm. Quest'anno abbiamo anche aggiunto versioni binarie compilate di pnpm, che vengono fornite in modo diverso.
Visite alla documentazione
Raccogliamo alcune statistiche non personalizzate dai nostri documenti utilizzando Google Analytics. Nel 2021, a volte abbiamo avuto più di 2.000 visitatori unici a settimana.
La maggior parte dei nostri utenti proviene dagli Stati Uniti e dalla Cina.
Stelline su GitHub
Il nostro repository GitHub principale ha ricevuto +5.000 stelle quest'anno.
Nuovi utenti
Il nostro più grande nuovo utente quest'anno è Bytedance (la società dietro TikTok).
Inoltre, molti grandi progetti open source hanno iniziato a utilizzare pnpm. Alcuni sono passati a pnpm grazie al suo grande supporto dei monorepo:
Alcuni hanno cambiato perché apprezzano quanto sia efficiente, veloce e bello pnpm:
Caratteristiche principali
Nuovo formato del lockfile (dal v6.0.0)
Uno dei primi e più importanti cambiamenti di quest'anno è stato il nuovo formato pnpm-lock.yaml
. Questo è stato un cambiamento importante, quindi abbiamo dovuto rilasciare la v6. Ma è stato un successo. Il vecchio lockfile causava spesso conflitti con Git. Da quando è stato introdotto il nuovo formato, non abbiamo ricevuto alcun reclamo sui conflitti con Git.
Gestione delle versioni di Node.js (da v6.12.0)
Abbiamo fornito un nuovo comando (pnpm env
) che permette di gestire le versioni di Node.js. Quindi puoi usare pnpm invece dei gestori di versione di Node.js come nvm o Volta.
Inoltre, pnpm viene fornito come eseguibile autonomo, quindi puoi eseguirlo anche senza Node.js preinstallato sul sistema.
Iniezione di dipendenze locali (da v6.20.0)
Puoi "iniettare" una dipendenza locale. Per impostazione predefinita, le dipendenze locali sono collegate simbolicamente a node_modules
ma con questa nuova funzionalità puoi invece indicare a pnpm di collegare i file del pacchetto.
Segnalazione migliorata dei problemi di dipendenze peer (da v6.24.0)
I problemi di dipendenze peer venivano stampati come testo normale ed era difficile capirli. Ora sono tutti raggruppati e stampati in una bella struttura gerarchica.
La competizione
Yarn
Yarn ha aggiunto un linker pnpm in v3.1. Quindi Yarn può creare una struttura della cartella node_modules simile a quella creata da pnpm.
Inoltre, il team di Yarn prevede di implementare un archivio indirizzabile al contenuto per essere più efficiente in termini di spazio su disco.
npm
Il team di npm ha deciso di adottare anche la struttura della cartella node_modules simbolica utilizzata da pnpm (RFC correlato).
Altri
Bun scritto in Zig e Volt scritto in Rust entrambi affermano di essere più veloci di npm/Yarn/pnpm. Non ho ancora valutato questi nuovi gestori di pacchetti.
Progetti futuri
Più veloce, migliore, il migliore.