Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

Yarn: rychlý a spolehlivý package manager od Facebooku

14. 05. 2016 2 min čtení CORE SYSTEMSdevelopment

Facebook, Google a další představili Yarn — alternativní npm klient řešící problémy s rychlostí, determinismem a offline instalací. Proč přejít na Yarn.

Problémy npm v enterprise

npm je default package manager pro Node.js, ale v enterprise prostředí naráží na problémy:

  • Nedeterminismus** — npm install může vytvořit různé dependency stromy na různých strojích
  • Rychlost** — instalace velkých projektů trvá minuty
  • Bezpečnost** — žádná verifikace integrity balíčků
  • Offline** — instalace vyžaduje síťové připojení

Yarn řeší všechny tyto problémy.

Lockfile a determinismus

Yarn zavádí yarn.lock — automaticky generovaný soubor zajišťující identické dependency stromy:

# yarn.lock
lodash@^4.17.0:
  version "4.17.4"
  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz"
  integrity sha1-eCA6TRwyiuHYbcpkYONQ0d9P1cg=

Každá závislost má přesnou verzi, URL a integrity hash. yarn install na CI serveru vyprodukuje identický výsledek jako na vývojářském stroji.

npm v té době nemá lockfile — npm shrinkwrap existuje, ale nikdo ho nepoužívá.

Výkon a caching

Yarn je dramaticky rychlejší než npm:

  • Paralelní stahování** — balíčky se stahují současně, ne sekvenčně
  • Globální cache** — jednou stažený balíček se nemusí stahovat znovu
  • Offline instalace** — z cache funguje bez internetu

Benchmarky ukazují 2-7x zrychlení oproti npm 3.x. Pro CI/CD pipeline, kde se npm install spouští při každém buildu, je to zásadní úspora.

Migrace z npm

Přechod na Yarn je triviální:

  • yarn místo npm install
  • yarn add package místo npm install --save package
  • yarn remove package místo npm uninstall package
  • Commitněte yarn.lock do gitu (a smažte npm-shrinkwrap.json)

Yarn je kompatibilní s npm registry — používá stejné balíčky, jen jiný klient. Yarn a npm mohou koexistovat, ale v jednom projektu zvolte jeden.

Závěr: konkurence npm prospívá

Yarn donutil npm zlepšit se — npm 5 přinese vlastní lockfile a vylepšený výkon. Zdravá konkurence prospívá celému ekosystému. Pro současné projekty doporučujeme Yarn jako primární package manager.

yarnnpmnode.jspackage managerjavascripttooling