Passa al contenuto principale
Version: 6.x

Motivazione

Risparmio dello spazio su disco ed aumento della velocità di installazione

Quando si usa npm o Yarn, se hai 100 progetti che usano una dipendenza, avrai 100 copie di quella dipendenza salvata su disco. Con pnpm, la dipendenza sarà memorizzata in un archivio indirizzabile al contenuto, quindi:

  1. Se dipendi da versioni diverse della dipendenza, solo i file diversi sono aggiunti all'archivio. Ad esempio, se una dipendenza ha 100 file e una nuova versione ha cambiamenti in un solo file, pnpm update aggiungerà solamente un nuovo file all'interno dell'archivio, invece di clonare l'intera dipendenza solo per una modifica singola.
  2. Tutti i file sono salvati in un'unica posizione sul disco. Quando i pacchetti vengono installati, i loro file sono collegati fisicamente da quella singola posizione, senza consumare spazio su disco aggiuntivo. Ciò consente di condividere dipendenze della stessa versione tra progetti.

Di conseguenza, è possibile risparmiare molto spazio su disco proporzionalmente al numero di progetti e dipendenze, e avrai installazioni molto più veloci!

Creazione di una cartella node_modules non flat

Quando si installano le dipendenze con npm, tutti i pacchetti vengono agganciati alla radice della cartella dei moduli. Di conseguenza, il codice sorgente ha accesso a dipendenze non aggiunte come dipendenze al progetto.

pnpm utilizza collegamenti simbolici per aggiungere solo le dipendenze dirette del progetto nella root della cartella dei moduli. Se desideri maggiori dettagli sulla struttura unica di node_modules che pnpm crea e perché funziona bene con l'ecosistema Node.js, leggi: