51 votes

Quelle est la différence entre yarn.lock et package-lock de npm?

J'ai accidentellement couru npm install dans un projet qui utilise des Fils et remarqué que npm créé un package-lock.json le fichier.

Je sais que les Fils à pointes en popularité, en partie parce qu'il a utilisé un fichier de verrouillage pour produire plus fiable et déterministe de la dépendance des installations de mnp, pour un temps seulement eu une infirmité shrinkwrap fonctionnalité, mais maintenant, je ne suis pas sûr que faire de cette mnp lockfile de l'entreprise et il n'y a rien de convaincant à continuer d'utiliser des Fils.

Donc dans l'esprit d'un précédent Q et Un sur StackOverflow sur le fils vs emballé, j'ai poser la question suivante:

  • Existe-il des différences importantes entre les deux gestionnaires de paquet en termes de fiabilité plus?
  • Si non, est-il une raison impérieuse de continuer à utiliser des Fils en plus de "Plus d'émoticônes.

39voto

Rajiv Makhijani Points 2100

Sur le papier, du Fil et des MNP 5 regarder presque équivalent. Ils ont tous les deux déterministes verrouiller les fichiers et ont presque égalé les uns des autres dans la fonctionnalité. Certains diront que les Fils a été le catalyseur pour obtenir des MNP innover.

Cependant, après avoir subi des MNP 5 pour un mois, mon équipe a décidé de passer à la Laine.

MNP est théoriquement "plus déterministe" fichier de verrouillage en ce qu'il est théorique de garantir que, dans l'ensemble MNP versions, MNP, il se produit exactement le même node_modules le dossier. D'autre part, le Fil exact de levage/de la commande de dépendances dépend du Fils de version et le risque de changement à travers le Fil des versions. En général, cela a très peu d'impact.

Pourquoi utiliser du Fil alors? La fusion et de la fiabilité.

La laine faite à la légère déterminisme compromis pour atteindre un beaucoup plus simple yarn.lock le fichier qui est plus facile à fusionner. Si vous êtes un solo développeur, ce ne sera probablement pas un impact sur vous, mais si vous êtes sur une équipe de plusieurs collaborateurs de commettre la dépendance des changements, il devient rapidement un énorme problème. MNP package-lock est pratiquement de l'onu-fusionnables et vous finissez par avoir à re-générer ou de lutte. Sur l'autre main, avec du Fil, des fusions sont facile et prévisible.

Voir: https://yarnpkg.com/blog/2017/05/31/determinism/

Comme une note côté, nous avons également trouvé de Fil pour être plus fiable que la moyenne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X