Yarn, Npm que choisir?

Spread the love

Yarn et Npm sont deux gestionnaires de paquets fonctionnant avec Node.js. Npm étant encore le plus utilisé, il y a tout de même des vraies différences entre ces deux outils.

Gestion des dépendances.

Comme expliqué précédemment, les deux outils vont permettre de gérer de façon similaire les dépendances. Npm au moment de l’installation des dépendances va écrire dans le fichier package.json le nom de la dépendance suivi d’un ^2.2.4 (numéro variable en fonction de la version installée), mais expliquera à Npm d’installer une version compatible avec celle-ci. C’est-à-dire que si on vient à ré-effectuer un Npm install, on installera une version comprise entre >=2.2.4 et <3.0.0 ce qui peut causer des conflit.

Yarn quant à lui va utiliser le fichier package.json pour installer les dépendances et après il va créer un fichier yarn.lock. Si le fichier yarn.lock existe déjà alors il se contentera de celui pour l’installation des dépendances.

Les deux outils créent un fichier de verrouillage de version. Npm créera package-lock.json, et Yarn quant à lui va créer yarn.lock. Ces deux fichiers permettent entre autres de définir quelle version précise sont installée sur le projet. Grande différence, package-lock.json ne peut pas être publié. Donc si le projet vient à être partagé, il se peut qu’entre deux machines en utilisant Npm, les deux projets n’utilisent pas les mêmes versions des dépendances. Alors que Yarn.lock lui pouvant être publié, installera les mêmes numéros de versions sur chaque endroit où le projet vient à être installé.

Le quel choisir?

Effectivement, ayant sensiblement les mêmes fonctionnalités, on peut se demander lequel choisir. La bonne pratique, même si vous développez tout seul, serait d’utiliser Yarn. Yarn est plus rapide avec son système d’installation de dépendance en parallèle, il offre une meilleure sécurité avec le verrouillage de version, et la communauté y est très active. Malgré le fait qu’il ne fonctionne pas avec les versions antérieures à la v5 de Node.js et les problèmes d’installation de modules natifs, il reste tout de même très performant. Npm quant à lui sera plus lent, car il récupérera chaque dépendance puis les dépendances de ces dépendances. Il ne verrouille pas les numéros de version, mais reste facile à utiliser pour les habitués.

Comment régler les bug de build?

Vous avez déjà sans doute rencontré ce genre de bug :

2022-12-14T14:18:01.750Z [INFO]: yarn run v1.22.0
2022-12-14T14:18:01.775Z [INFO]: $ react-scripts build
2022-12-14T14:18:02.857Z [INFO]: Creating an optimized production build...
2022-12-14T14:18:04.127Z [INFO]: Failed to compile.
2022-12-14T14:18:04.128Z [INFO]: [eslint]

Comme expliqué plus haut, il se peut que vous rencontriez des problèmes avec Yarn concernant l’installation de module natif, comme une dépendance homologue d’autres package.

Effectivement, le seul moyen efficace serait à ce jour de supprimer le fichier de dépendance node_modules et de ré-effectuer un yarn install afin de résoudre ce problème.

J’espère avoir pu vous éclairer un peu plus, si c’est le cas un petit mot fait toujours plaisirs et hésitez pas à partager.

Good dev.

chevron_left
chevron_right

Laisser un commentaire

%d blogueurs aiment cette page :