Principala diferență între pachetele locale și globale este aceasta:
- pachetele locale sunt instalate în directorul în care rulați
npm install <package-name>
și sunt puse în folderulnode_modules
de sub acest director - pachetele globale sunt toate puse într-un singur loc în sistemul dumneavoastră (locul exact depinde de configurația dumneavoastră), indiferent de locul în care rulați
npm install -g <package-name>
În codul dumneavoastră puteți cere doar pachete locale:
require('package-name')
deci când ar trebui să instalați într-un fel sau altul?
În general, toate pachetele ar trebui să fie instalate local.
Aceasta vă asigură că puteți avea zeci de aplicații în calculatorul dumneavoastră, toate rulând o versiune diferită a fiecărui pachet, dacă este necesar.
Actualizarea unui pachet global ar face ca toate proiectele dumneavoastră să folosească noua versiune și, după cum vă puteți imagina, acest lucru ar putea provoca coșmaruri în ceea ce privește mentenanța, deoarece unele pachete ar putea întrerupe compatibilitatea cu alte dependențe, și așa mai departe.
Toate proiectele au propria versiune locală a unui pachet, chiar dacă acest lucru ar putea părea o risipă de resurse, este minim în comparație cu posibilele consecințe negative.
Un pachet ar trebui instalat global atunci când oferă o comandă executabilă pe care o executați din shell (CLI) și este reutilizat în toate proiectele.
Puteți, de asemenea, să instalați comenzi executabile local și să le executați folosind npx, dar unele pachete sunt pur și simplu mai bine instalate global.
Exemple excelente de pachete globale populare pe care s-ar putea să le cunoașteți sunt
npm
create-react-app
vue-cli
grunt-cli
mocha
react-native-cli
gatsby-cli
forever
nodemon
.
Probabil că aveți deja câteva pachete instalate la nivel global pe sistemul dumneavoastră. Le puteți vedea rulând
npm list -g --depth 0
pe linia de comandă.