Yarn

Yarn je téma, které v poslední době upoutalo pozornost mnoha lidí. Jeho důležitost a relevance se staly středem mnoha debat a diskuzí v různých oblastech. Od akademické sféry až po profesionální oblast, Yarn vyvolal rostoucí zájem díky svým dopadům a dopadům na dnešní společnost. Jak se více lidí ponoří do zkoumání a porozumění Yarn, odhalují se nové pohledy a přístupy, které obohacují stávající znalosti o tomto tématu. V tomto článku do hloubky prozkoumáme klíčové aspekty související s Yarn, analyzujeme jeho vývoj, jeho výzvy a jeho možný budoucí vývoj.

Yarn
Repozitář    https://github.com/yarnpkg

Repozitář    https://github.com/yarnpkg
VývojářFacebook
První vydání18. červen 2016
Aktuální verze3.2.0 (21. únor 2022)
Platformavíceplatformní
Vyvíjeno vJavaScript
Typ softwaruSprávce balíčků
Licence2-bodová BSD licence
Webhttps://yarnpkg.com/
Některá data mohou pocházet z datové položky.

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[pozn. 1], 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[pozn. 2] 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[pozn. 3] 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

  1. z angličtiny omezení
  2. z angličtiny záplatovat
  3. z angličtiny pracovní prostory

Reference

V tomto článku byl použit překlad textu z článku Yarn (správca balíkov) na slovenské Wikipedii.

  1. Yarn: A new package manager for JavaScript . Engineering at Meta . Dostupné online. 
  2. Yarn vs NPM: Why and how to migrate from NPM to Yarn . . Dostupné online. 
  3. Choosing Between NPM and Yarn . . Dostupné online. 
  4. Documentation - Publishing a Package . yarnpkg . Dostupné online. 
  5. Publish React components as an npm package . . Dostupné online.