Yarn : un gestionnaire de paquets JavaScript proposé par Facebook

Par:
fredericmazue

ven, 14/10/2016 - 14:42

Avec l'arrivée des gros projets JavaScript est venue la nécessité de réutiliser le code existant et de gérer les dépendances entre code de diverses provenances. Ainsi, peu après Node.js, est apparu le gestionnaire de paquets JavaScript npm pour résoudre ces problèmes. Facebook, qui travaille beaucoup avec JavaScript a utilisé intensivement npm et reconnaît ses qualités.

Néanmoins Facebook a rencontré des problèmes avec npm. Ces problèmes se résument ainsi : Dans l'écosystème node.js, un client npm installe les dépendances dans un répertoire nommé node_modules de façon non déterministe. Cela signifie que selon l'ordre selon lequel les dépendances sont installées, la structure du répertoire node_modules peut varier d'une machine à l'autre. Ces différences peuvent introduire des bugs du type "mais cela fonctionne sur ma machine" difficiles à résoudre, explique Facebook dans un billet de présentation de Yarn, un nouveau gestionnaire de paquets compatibles nmp, développé pour résoudre ces soucis.

La solution apportée par Yarn consiste en des verrous de fichiers et un algorithme 'déterministe et fiable' explique Facebook, ce qui assure d'avoir des répertoires node_modules identiques d'une machine à l'autre.

Par ailleurs Yarn utilise un mécanisme de cache global qui évite les téléchargements répétitifs et accélère de manière importante l'installation des paquets.

Ainsi que mentionné plus haut, Yarn est compatible npm. Mais il est aussi compatible avec bower et supporte les registres mixtes. Il permet de définir des restrictions de licences sur des modules et affiche ces licences. Il expose encore une API JavaScript qui permet d'intégrer Yarn à des applications tierces telles que des outils de build.

Yarn est open source et peut être téléchargé depuis son site officiel sur lequel on trouvera également un guide d'installation et un guide de démarrage.