Yarn je balíčkovací systém vyvinutý v roce 2016 společností Facebook pro běhové prostředí programovacího jazyka JavaScript Node.js jako alternativa k npm. Mezi přednosti tohoto balíčkovacího systému patří rychlost, konzistence, stabilita, a bezpečnost. Tento nástroj byl vyvinut společným úsilím společností Facebook (nyní Meta), Exponent, a Google a Tilde s cílem vyřešit potíže s konzistencí, bezpečností a výkonem u velkých databázích kódu poté, co se s těmito problémy setkali vývojáři Facebooku.

Vlastnosti Yarn nabízí funkci plug-in, která rozšiřuje základní funkce a umožňuje vytvářet lepší a propracovanější pracovní postupy.

Nástroj Yarn obsahuje pluginy, které jsou k dispozici ve výchozím nastavení. Uživatelé si také mohou vytvářet vlastní pluginy.

Constrains Yarn obsahuje funkci Constrains,z angličtiny omezení která umožňuje automaticky nastavit pravidla pro balíčky závislostí nebo manifest nastavení projektu, nastavená pravidla se poté projeví v rámci celých pracovních prostorů. Tato funkce je dostupná pouze při instalaci nástroje Yarn Berry, dá se zpřístupnit spuštěním příkazu yarn plugin import constraints

Offline vyrovnávací paměť Tato funkce umožňuje nástroji Yarn ukládat dříve stažené balíčky závislostí a urychlit další stahování stejných balíčků závislostí, a je důležitou součástí funkce Zero-Installs. Také neukládá pro každý balíček více než jeden soubor, což umožňuje snadné uložení v repozitáři.

Plug'n'Play Funkce Plug'n'Play umožňuje spouštět projekty vyžadující technologii Node bez složky node_modules Tato funkce definuje vhodný způsob umístění balíčků závislostí pomocí řídicího souboru Plug-n-Play, což způsobí rychlejší spouštění aplikací vyžadující Node.js. Cílem této funkce je opravit špatně uspořádanou architekturu node_modules

Pluginy Pluginy jsou doplňky umožňující uživatelům rozšířit funkce nástroje Yarn o nové resolvery, fetchery, linkery a příkazy. Mohou se také registrovat ke konkrétním událostem nebo se vzájemně ovlivňovat. Většina podprogramů Yarnu je implementována prostřednictvím pluginů, včetně yarn add a yarn install

Protokoly Funkce Protokoly umožňuje uživatelům určit, který protokol se použije k získání provázaných balíčků (závislostí). Například protokol git lze použít ke stažení veřejně přístupného balíčku z gitového repozitáře, protokol patch z angličtiny záplatovat se používá k vytvoření opravené kopie původního balíčku

Release Workflow Funkce Release Workflow při aktualizaci kořenového balíčku automaticky aktualizuje i navazující závislosti mezi pracovními prostory monorepos. Tato funkce je dostupná pouze při instalaci nástroje Yarn Berry, dá se zpřístupnit spuštěním příkazu yarn plugin import version

Workspaces Funkce Workspaces z angličtiny pracovní prostory umožňuje spuštění více projektů v jednom repozitáři a při úpravě zdrojového kódu automaticky použít udělané změny na další navázané balíčky. Tato funkce umožňuje nainstalovat více balíčků spuštěním příkazu yarn install pouze jednou, všechny balíčky zadané v tomto příkazu se nainstalují společně.

Zero-Installs Funkce Zero-Installs usnadňuje používání softwarových balíčků při spouštění kódu staženého z repozitáře.

Výhody Nástroj Yarn umožňuje instalovat balíčky z místní vyrovnávací paměti Yarn pevně váže verze balíčků Yarn umožňuje instalaci více balíčků najednou (souběžná instalace). Komunita uživatelů kolem nástroje Yarn je aktivní a oblíbená Yarn používá k zajištění integrity dat kontrolní součet, zatímco nástroj npm používá ke kontrole integrity dat stažených balíčků algoritmus SHA-512. Yarn instaluje balíčky souběžně, zatímco npm jednotlivě. Nástroj npm je tak v některých případech pomalejší než Yarn.

Zveřejnění balíčků Vývojáři mohou sdílet své vlastní balíčky s ostatními vývojáři tak, že tyto balíčky zveřejní v registru npm, který slouží ke globální distribuci doplňkových balíčků. Ke zveřejňování balíčků v registru npm je potřebná registrace. Pro zveřejňování balíčků z příkazového řádku lze využít příkaz:yarn login Napsaný a otestovaný kód balíčku lze poté zapsat do registru npm. Softwarový balíček lze zveřejnit pomocí příkazu:yarn publish Vytvoření repozitáře pro komponenty není povinné.

Poznámky

Reference

Kategorie:Balíčkovací systémy Kategorie:Svobodný software naprogramovaný v JavaScriptu Kategorie:Software pod licencí BSD