A fő különbség a helyi és a globális csomagok között a következő:
- a helyi csomagok abba a könyvtárba települnek, ahol a
npm install <package-name>
futtatod, és az e könyvtár alattinode_modules
mappába kerülnek - a globális csomagok mind egy helyre kerülnek a rendszeredben (hogy pontosan hova, az a beállításaidtól függ), függetlenül attól, hogy hol futtatod
npm install -g <package-name>
A kódodban csak a helyi csomagokra lehet szükséged:
require('package-name')
akkor mikor kell telepíteni így vagy úgy?
Általában minden csomagot lokálisan kell telepíteni.
Ez biztosítja, hogy több tucat alkalmazásod legyen a gépeden, amelyek mind az egyes csomagok különböző verzióit futtatják, ha szükséges.
A globális csomag frissítése miatt minden projekted az új kiadást használná, és ahogy el tudod képzelni, ez rémálmokat okozhat a karbantartás szempontjából, mivel egyes csomagok megszakíthatják a kompatibilitást a további függőségekkel, és így tovább.
Minden projektnek megvan a saját helyi verziója egy csomagból, még ha ez erőforráspazarlásnak is tűnhet, ez minimális a lehetséges negatív következményekhez képest.
A csomagot akkor érdemes globálisan telepíteni, ha egy végrehajtható parancsot biztosít, amelyet a shellből (CLI) futtatsz, és újrafelhasználható a projektek között.
Lokálisan is telepíthetsz végrehajtható parancsokat, és az npx segítségével futtathatod őket, de néhány csomagot egyszerűen jobb globálisan telepíteni.
Nagyszerű példák a népszerű globális csomagokra, amelyeket ismerhetsz:
npm
create-react-app
vue-cli
grunt-cli
mocha
react-native-cli
gatsby-cli
forever
nodemon
Valószínűleg néhány csomag már globálisan telepítve van a rendszereden. Ezeket a parancssoron a
npm list -g --depth 0
futtatásával láthatja.