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 installmůž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í:
yarnmístonpm installyarn add packagemístonpm install --save packageyarn remove packagemístonpm uninstall package- Commitněte
yarn.lockdo gitu (a smažtenpm-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.
Brauchen Sie Hilfe bei der Implementierung?
Unsere Experten helfen Ihnen bei Design, Implementierung und Betrieb. Von der Architektur bis zur Produktion.
Kontaktieren Sie uns