Passa al contenuto principale

L'anno 2021 per pnpm

· 4 minuti di lettura
Zoltan Kochan
Lead maintainer of pnpm

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

note

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​

Our biggest new user this year is Bytedance (the company behind 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.