GNU/Linux >> Znalost Linux >  >> Ubuntu

Příze vs NPM:Komplexní srovnání

Úvod

Yarn a NPM jsou dva z nejpopulárnějších správců balíčků Node.js. Umožňují stahování, instalaci a správu balíčků při vývoji v JavaScriptu.

V tomto tutoriálu porovnáme Yarn a NPM, zvážíme jejich výkon, snadnost použití, zabezpečení a funkce, které poskytují.

Příze vs. NPM:definice

Příze (ještě další vyjednavač zdrojů) a NPM (Node Package Manager) jsou správci balíčků používané pro kódování JavaScriptu. Pracují s Node.js , který pomáhá uživatelům vyvíjet a spouštět kód JavaScript mimo webový prohlížeč.

Node.js používá velké množství balíčků a knihoven s otevřeným zdrojovým kódem, aby bylo kódování jednodušší a efektivnější. Správci balíčků jako Yarn a NPM umožňují uživatelům snadno instalovat, spravovat, aktualizovat a odstraňovat balíčky, knihovny a závislosti.

Co je příze?

Facebook vyvinul Yarn v roce 2016 jako náhradu za NPM. Byl navržen tak, aby nabízel pokročilejší funkce, které NPM v té době postrádal (jako je zamykání verzí) a vytvořil bezpečnější, stabilnější a efektivnější produkt.

Od vydání Yarnu však NPM přidal několik zásadních funkcí. Ve svém současném stavu je Yarn nyní spíše alternativou k NPM než náhradou.

Co je NPM?

NPM je výchozí správce balíčků pro Node.js s nástrojem CLI, který pomáhá instalovat, spravovat a odstraňovat balíčky Node.js. Umožňuje také uživatelům sdílet balíčky Node.js s otevřeným zdrojovým kódem.

Příze vs. NPM:Srovnání

Níže je uveden přehled některých podobností a rozdílů mezi přízí a NPM.

Instalace

Začneme porovnáním instalačního procesu pro Yarn a NPM:

Příze

Chcete-li začít používat Yarn, musíte jej nainstalovat pomocí instalačního programu MSI z oficiálního webu nebo správce balíčků, jako je Chocolatey, Scoop CLI nebo samotný NPM. Další informace naleznete v našem průvodci instalací Yarn na Windows a instalací Yarn na Ubuntu 18.04.

NPM

NPM je standardně součástí instalace Node.js a nevyžaduje žádné další kroky k instalaci. Chcete-li se dozvědět více o instalaci Node.js a NPM, podívejte se na jednoho z našich průvodců:

  • Jak nainstalovat Node.js a NPM na Ubuntu 18.04 a 20.04
  • Jak nainstalovat Node.js a NPM na CentOS 7
  • Jak nainstalovat Node.js a NPM na Windows
  • Jak nainstalovat Node.js a NPM na Mac

Závislosti

Příze

Příze verze 1 a NPM spravují závislosti velmi podobným způsobem. Oba ukládají metadata projektu do package.json soubor, který se nachází v node_modules složku v adresáři projektu.

Počínaje verzí 2 již Yarn nepoužívá node_modules složku pro sledování závislostí. Místo toho Yarn 2.0 používá Plug'n'Play funkce, která generuje jeden .pnp.cjs soubor. Tento soubor obsahuje mapu hierarchie závislostí pro projekt.

Příze používá yarn příkaz k instalaci závislostí. Paralelně instaluje závislosti, což vám umožňuje přidávat více souborů současně.

Instalace závislostí automaticky vytvoří soubor zámku, který uloží přesný seznam závislostí použitých pro projekt. U Yarn se tento soubor nazývá yarn.lock .

NPM

NPM nainstaluje závislosti pomocí npm install příkaz. Závislosti se instalují postupně, jedna po druhé.

NPM také vytvoří soubor zámku verze s názvem package-lock.json . Yarn také podporuje package-lock.json souborů, což uživatelům umožňuje migrovat data verze z NPM do Yarn.

Rychlost a výkon

Jak bylo uvedeno výše, zatímco NPM instaluje balíčky závislostí postupně, Yarn se instaluje paralelně. Z tohoto důvodu Yarn pracuje rychleji než NPM při instalaci větších souborů.

Oba nástroje také nabízejí možnost ukládání souborů závislostí do offline mezipaměti. To umožňuje uživatelům instalovat závislosti, i když jsou offline.

Kromě toho od verze 2 Yarn používá nulovou instalaci Vlastnosti. Tato funkce přebírá mapu závislostí z .pnp.cjs soubor a používá jej k provedení offline závislé instalace s prakticky nulovým zpožděním.

Zabezpečení

Příze

Yarn provádí kontrolu zabezpečení jako proces na pozadí při stahování balíčků. Používá licenční informace balíčku, aby zajistil, že nestáhne žádné škodlivé skripty nebo nezpůsobí žádné konflikty závislostí.

Oba nástroje využívají k zajištění bezpečného přenosu dat šifrovací protokoly. Yarn ověřuje balíčky pomocí kontrolního součtu, zatímco NPM používá SHA-512 (Secure Hash Algorithm) uložený v package-lock.json soubor.

NPM

Bezpečnostní hrozby byly významným problémem v raných verzích NPM. Od verze 6 provádí NPM bezpečnostní audit při každé instalaci balíčku. To pomáhá předcházet zranitelnostem a zajišťuje, že neexistují žádné konfliktní závislosti.

Můžete také spustit ruční audit pomocí npm audit příkaz. Pokud NPM najde nějaké chyby zabezpečení, použijte npm audit fix by měl problémy vyřešit.

Snadné použití

Jak Yarn, tak NPM jsou relativně snadno použitelné, zvláště když sdílejí několik příkazů. Výstup příkazu je obecně snadno čitelný a srozumitelný, i když při instalaci velkého počtu balíčků může být hůře vizuálně rozlišitelný.

Oba správci balíčků nabízejí interaktivní režim, který pomáhá uživatelům nastavovat nové projekty. V Yarn je tento režim ve výchozím nastavení povolen, zatímco NPM vyžaduje npm-upgrade balíček umožňující interaktivitu.

Funkce

Příze a NPM mají několik společných klíčových vlastností:

  • Generování souborů zámku: Oba správci balíčků automaticky vytvoří soubor zámku verze. U Yarn se tento soubor nazývá yarn.lock , zatímco NPM pojmenuje soubor package-lock.json .
  • Používání pracovních prostorů: Jak Yarn, tak NPM podporují pracovní prostory, což vám umožňuje používat jediné úložiště pro správu závislostí pro více projektů.
  • Vzdálené skripty: NPM i Yarn umožňují spouštět skripty vzdáleně pomocí npx příkaz v NPM a yarn dlx příkaz v přízi.

Funkce jsou exkluzivní pro Yarn:

  • Plug'n'Play: Namísto použití node_modules Složka Yarn vygeneruje jeden .pnp.cjs soubor, který mapuje závislosti projektu. To umožňuje více optimalizované stromy závislostí a rychlejší spouštění projektu a instalaci balíčků.
  • Nulový počet instalací: Tato funkce souvisí s Plug'n'Play , pomocí .pnp.cjs soubor k mapování balíčků uložených v offline mezipaměti. To vám umožňuje přistupovat a instalovat uložené balíčky téměř bez zpoždění.
  • Kontrola licence: Yarn obsahuje vestavěnou kontrolu licencí při stahování a instalaci balíčků.

Příkazy

Níže uvedená tabulka poskytuje přehled některých nejčastěji používaných příkazů pro NPM a Yarn:

Příkaz NPM Příze
Inicializovat projekt npm init yarn init
Spustit testy pro aktuální balíček npm test yarn test
Kontrola neaktuálních balíčků npm outdated yarn outdated
Publikovat balíček npm publish yarn publish
Spusťte skript npm run yarn run
Spravovat místní mezipaměť balíčků npm cache clean yarn cache clean
Přihlášení nebo odhlášení npm login/logout yarn login/logout
Instalovat závislosti npm install yarn
Instalovat balíčky npm install [package name] yarn add [package name]
Odinstalujte balíčky npm uninstall [package name] yarn remove [package name]
Správce aktualizací npm update yarn upgrade
Aktualizovat balíčky npm update [package name] yarn upgrade [package name]
Instalujte balíčky globálně npm install --global [package name] yarn global add [package name]
Globálně odinstalujte balíčky npm uninstall --global [package name] yarn global remove [package name]
Interaktivní aktualizace závislosti npm run upgrade-interactive yarn upgrade-interactive
Spustit balíček vzdáleně yarn dlx
Zkontrolujte licence yarn licenses ls

Příze vs. NPM:Jak si vybrat

Při rozhodování, který z nich použít, je nezbytné zvážit výhody a nevýhody NPM i příze.

Příze

Výhody

  • Podporuje paralelní instalaci a nulové instalace, které obě výrazně zvyšují výkon.
  • Novější verze Yarn nabízejí bezpečnější formu zamykání verzí.
  • Komunita aktivních uživatelů.

Nevýhody

  • Yarn nefunguje s verzemi Node.js staršími než verze 5.
  • Příze vykazuje problémy při pokusu o instalaci nativních modulů.

NPM

Výhody

  • Snadné použití, zejména pro vývojáře zvyklé na pracovní postupy starších verzí.
  • Instalace místních balíčků je optimalizována pro úsporu místa na pevném disku.
  • Jednoduché uživatelské rozhraní pomáhá zkrátit dobu vývoje.

Nevýhody

  • Online registr NPM se může stát nespolehlivým v případě problémů s výkonem. To také znamená, že NPM vyžaduje síťový přístup k instalaci balíčků z registru.
  • Navzdory řadě vylepšení v různých verzích stále existují chyby zabezpečení při instalaci balíčků.
  • Výstup příkazu může být obtížně čitelný.

Verdikt

Vzhledem ke všemu výše uvedenému je NPM lepší pro vývojáře, kteří jsou na něj zvyklí a jsou spokojeni s jeho současným pracovním postupem. Poskytuje přiměřeně efektivní uživatelskou zkušenost a zároveň šetří místo na pevném disku.

Na druhou stranu Yarn nabízí pokročilejší funkce, jako je Plug'n'Play a Zero installs. Poskytuje také o něco lepší výkon a zabezpečení, ale za cenu místa na pevném disku.


Ubuntu
  1. Jak nainstalovat Yarn na Ubuntu 18.04

  2. Jak nainstalovat Yarn na Ubuntu 20.04?

  3. Porovnání dat v Bash

  1. PostgreSQL vs MySQL:Podrobné srovnání

  2. Nainstalujte npm na Ubuntu 16.04

  3. Jak nainstalovat Správce balíčků Yarn NPM na Oracle Linux 8

  1. Hadoop vs Spark – podrobné srovnání

  2. Apache vs Nginx - podrobné srovnání

  3. Virtualbox vs VMware:přímé srovnání