A Node egyik legjobb tulajdonsága a csomagkezelők. A csomóponti csomagok telepítésének és kezelésének számos különböző módja van. Itt megvizsgáljuk az egy csomagkezelő vagy több csomagkezelő használatának előnyeit és hátrányait, valamint néhányat a legjobb módszerek együttes használatára.
Mi az a csomagkezelő? Olvasson tovább, hogy megtudja.
Mik azok a csomagkezelők?
A szoftverfejlesztés világában a függőségekre van szükség a projekt futtatásához. Olyanok, mint egy recept hozzávalói: nélkülük semmi sem történik.
Például, ha olyan alkalmazást ír, amely JavaScriptet használ, és szeretne hozzáférni bizonyos funkciókhoz a jQuery nevű könyvtár (amit egykor sok webhely használt), akkor a jQuery lesz az egyik függősége. Telepítenie kell, hogy amikor valaki meglátogatja webhelyét, láthatja azokat a klassz animációkat vagy interakciókat, amelyeket vele készített!
A csomagkezelők segítenek kezelni ezeket a projektek közötti kapcsolatokat azáltal, hogy kezelik helyettünk a függőségeket, így nem kell attól tartanunk, hogy minden alkalommal saját kezűleg letöltjük őket. amikor valami újat szeretnénk hozzáadni vagy frissíteni – arról is gondoskodnak, hogy minden megfelelően működjön, és a telepítés után zökkenőmentesen működjön (amit néha könnyebb mondani, mint Kész).
A Node előre becsomagolva NPM nevű csomagkezelővel érkezik
Az NPM az alapértelmezett csomagkezelő, és mint ilyen, be van építve a csomópont futási környezetébe. Az NPM segítségével csomagokat telepíthet a GitHubból vagy NPM közvetlenül. Csomagjait ezen a webhelyen is közzéteheti, hogy mások telepíthessék azokat az NPM-verziójukkal.
Az NPM-et nem csak csomagok telepítésére használják; emellett kezeli a függőségek feloldását és a verziókonfliktusokat két vagy több szükséges könyvtár vagy modul között az alkalmazás kódbázisában.
Ez azt jelenti, hogy ha valami hasonlónak több verziója van Express fut a szerveren Az NPM bármikor gondoskodik arról, hogy minden példány megkapja azt, amire szüksége van, anélkül, hogy ütközne más esetekben hasonló munkát végeznek – és mindezt anélkül, hogy az egyszerűségen túl bármi különlegeset kellene tennie hívás igényel() szükség esetén egy tárgyon!
Az NPM egy hihetetlenül hatékony eszköz, és könnyű vele kezdeni. Ha azonban még nem ismeri a Node-ot és a JavaScriptet, akkor nehéz lehet tudni, hogy milyen eszközök állnak rendelkezésre az Ön számára – és melyek a legjobbak egy adott projekthez.
Az NPM fő problémája az, hogy lassú a csomagok telepítése. Ez nem nagy dolog, ha csak alkalmi forgatókönyvet futtatsz, de hihetetlenül frusztráló, ha egy teljes alkalmazást próbál felépíteni, amely több tucat különböző könyvtárat és eszközöket.
A fonal és a PNPM gyorsabb, mint az NPM
A Yarn az NPM biztonságos és megbízható alternatívája, amely zárfájlt használ a véletlen felülírások megakadályozására, és biztosítja a függőségek helyes feloldását a csomagok telepítésekor.
Gyorsabb telepítési idővel rendelkezik, mint az NPM, ami különösen hasznossá teszi, ha nagy projektekkel dolgozik, amelyek sok modullal és sok függőséggel rendelkeznek.
A PNPM a Yarn és az NPM alternatívája, de még nem annyira népszerű, mert egyikben sem rendelkezik bizonyos funkciókkal (például zárfájlokkal). Fejlesztői azonban azt állítják, hogy a PNPM könnyű jellegének köszönhetően akár négyszer gyorsabban is képes csomagokat telepíteni, mint a Yarn vagy az NPM; ez azt jelenti, hogy kevesebb lemezterületet használ a számítógépén is!
Ha olyan projektet épít, amelyhez csak néhány függőség szükséges, akkor valószínűleg elegendő a fonal vagy az NPM. Ha azonban nagy, sok modult és függőséget tartalmazó projektekkel dolgozik, akkor a PNPM lehet a jobb megoldás az Ön számára.
A több csomagkezelő használatának előnyei
Egy csomagkezelő egyszerre csak egy adott könyvtár egy verzióját tudja kezelni. Ha ugyanannak a könyvtárnak két különböző verzióját szeretné használni más projektekhez vagy különböző környezetekben (például éles vs. fejlesztés), akkor két külön csomagot kell telepítenie a rendszerére.
Ez ütközésekhez vezethet, ha mindkét csomag egyszerre próbálja frissíteni ugyanannak a függőségnek a verzióját. Több csomagkezelő használata azt jelenti, hogy jobban szabályozhatja, hogy mely függőségek legyenek telepítve, és mi segít elkerülni az ilyen típusú ütközéseket.
További előny, hogy több csomagkezelő használata esetén mindegyik saját egyedi szolgáltatáskészletet biztosít. Egyesek gyorsabbak lehetnek, mint mások; egyesek jobb függőségkezelési képességekkel rendelkeznek; mások alkalmasabbak lehetnek alkalmazások fejlesztésére bizonyos kereteken belül, például a ReactJS vagy a VueJS stb.
Végül, több csomagkezelő használata javíthatja a fejlesztői termelékenységet azáltal, hogy csökkenti a függőségek keresésével és telepítésével töltött időt. Ennek az az oka, hogy minden csomagkezelőt meghatározott használati esetek (például sebesség vs. biztonság vs. függőségkezelés, stb...).
Használjon több csomagkezelőt úgy, hogy globálisan telepíti őket
A parancssor segítségével megadhatja, hogy egy adott projekthez melyik csomagkezelőt kívánja használni. Állítson be több csomagkezelőt a gépen:
- Az NPM előre csomagolva érkezik a Node-dal. Ez lehetővé teszi, hogy más csomagokat (és csomagkezelőket) telepítsen a parancssorból, és kezelje az összes projekt függőségét az NPM segítségével. Akkor is hasznos, ha NPM-szkripteket szeretne futtatni egy böngészőben (pl. Webpack), mert a böngészőkben nincs előre telepítve az NPM!
- Telepítse a Yarn-t globálisan az NPM használatával is. Ez egy másik népszerű lehetőség a JavaScript-projekteken belüli függőségek kezelésére; van néhány előnye az NPM-mel szemben, ami bizonyos típusú projektek vagy csapatok számára előnyösebbé teheti
- Végül telepítse a PNPM-et. Ez a csomagkezelő az NPM elágazása, amelyet gyorsabbra és stabilabbra terveztek. Ezenkívül néhány további funkcióval is rendelkezik, amelyek bizonyos típusú projekteknél hasznosak lehetnek, például a GitHub-függőségek támogatása.
Vegye figyelembe, hogy a globális telepítés azt jelenti, hogy a kiválasztott csomag elérhető lesz az egész rendszer számára (elérheti a program bárhol a parancssoron keresztül), míg a helyi telepítést csak az aktuálisan működő program érheti el Könyvtár.
Valós példák több csomagkezelő használatára
Tekintse meg ezeket a felhasználásokat:
1. A fonal és az NPM együtt használhatók (pl. Alkalmazás létrehozása-reagálása)
Ez akkor hasznos, ha szeretné kihasználni a Yarn sebességét és hatékonyságát, miközben megőrzi az NPM-csomagokkal való kompatibilitást. Ha egy olyan könyvtár legújabb verziójára van szüksége, amelyet még nem frissítettek a Yarnnal való kompatibilitás érdekében, vagy ha más oka van csapata miért ragaszkodik inkább az NPM-hez annak lassabb sebessége vagy korlátozott szolgáltatáskészlete ellenére, akkor ez jól működhet az Ön számára projekt. Segít elkerülni, hogy két különálló függőségi fa legyen a mono repo beállításaiban!
2. Fonal használata globális csomagokhoz és PNPM helyi telepítésekhez
Míg a PNPM a leggyorsabb csomagkezelő, a globálisan telepített csomagok használata bonyolult lehet. Ennek az az oka, hogy más fájlstruktúrát használ, ami kompatibilitási problémákat okozhat olyan programokkal, mint a Visual Studio Code. Itt jön be a fonal. Használhatja a globálisan telepített csomagokhoz, a PNPM pedig a helyi telepítésekhez. Ez a megoldás jó módja annak, hogy kihasználja mindkét csomagkezelő előnyeit anélkül, hogy túl sokat kellene változtatnia a munkafolyamatán. Ezzel a beállítással – ha elvadulni szeretne – teljesen eltávolíthatja az NPM-et a rendszeréből (de mindig jó, ha az NPM biztonsági másolatot készít).
3. PNPM használata NPM-mel tartalékként
Ez egy jó lehetőség arra az esetre, ha PNPM-et szeretne használni, de még nem szeretné, hogy minden fejlesztőjének új eszközt kelljen megtanulnia. Lehetővé teszi számukra, hogy addig dolgozzanak az NPM-mel, amíg nem érzik jól magukat a PNPM-mel, és szükségük lesz rá a munkájukhoz.
A több csomagkezelő használata megkönnyíti a dolgokat
Több csomagkezelőt is használhat. Telepítheti őket globálisan vagy lokálisan, és ha szeretné megadni, hogy egy adott projekthez melyik csomagkezelőt használja, csak használja a parancssort!
Ha több csomagkezelőt szeretne telepíteni a rendszerére, győződjön meg arról, hogy a Node.js ugyanazt a verzióját használja.
Összefoglalva, úgy gondoljuk, hogy egynél több csomagkezelőt kell használnia. Ez egy nagyszerű módja annak, hogy elkezdje a Node-ot, és néhány új eszközt is megtanuljon, ha már ismeri az NPM-et. Ha még nincs telepítve a Node, a telepítés egyszerű Windows rendszeren.