web-dev-qa-db-fra.com

Pourquoi n'utiliserais-je pas npm pour installer le fil?

Dans l'article de blog annonçant yarn (un autre client npm) ils disent: "Le moyen le plus simple de commencer est de lancer npm install -g yarn". Mais si vous allez sur la page "install yarn" dans leur documentation , "npm install yarn" ne figure dans aucune des pages d'installation spécifiques à la plate-forme et n'est proposé qu'en tant que troisième des trois. options sur la page "Alternatives". De plus, lorsque vous filez npm install, Un avertissement de désapprobation est émis: "Il est recommandé d'installer Yarn à l'aide de la méthode d'installation native de votre environnement." Ma question est donc la suivante: si npm install Est la méthode d’installation la plus simple, pourquoi n’est-ce pas une méthode recommandée dans leur documentation? Y a-t-il des inconvénients à installer du fil avec npm?

58
chrisarnesen

Selon les responsables du projet Yarn, l'installation de Yarn via npm va à l'encontre des objectifs du projet , peut être à l'origine de problèmes, et est en général pire que les méthodes d'installation spécifiques à une plate-forme.


Avantages de l'installation recommandée spécifique à la plate-forme:

  • Les équipes de Yarn considèrent npm comme peu sûr et peu fiable. Dans la section "Installer via npm" de Yarn's page "Installation" :

    Remarque: L'installation de fil via npm n'est généralement pas recommandée. L'installation de Yarn with npm n'est pas déterministe, le package n'est pas signé et le seul contrôle d'intégrité effectué est un hachage SHA1 de base, ce qui constitue un risque pour la sécurité lors de l'installation d'applications à l'échelle du système.

    Pour ces raisons, il est fortement recommandé d'installer Yarn en utilisant la méthode d'installation la mieux adaptée à votre système d'exploitation.

  • L'exécution de Yarn, qui est un utilitaire de gestion de paquets séparé, via npm peut entraîner des problèmes de cas Edge (voir numéro 2072 )

  • L'installation via un gestionnaire de paquets système sépare Yarn de npm, vous permettant ainsi d'exécuter Yarn sans npm
  • Le gestionnaire de paquets système s'exécute généralement de manière régulière, gardant Yarn à jour.
  • L'installation du fil via npm est lente

Avantages à npm install -g yarn:

  • Rapide et facile (npm install -g yarn)
  • Peut être fait dans n’importe quel environnement npm (indépendant de la plate-forme)
  • Paradigme et processus familiers pour les développeurs de Node.js
  • Peut être facilement mis à jour (npm update -g yarn)
    • Une commande de mise à jour de fil existe (yarn self-update) mais cela semble être brisé
  • Aucune dépendance vis-à-vis des gestionnaires de paquets système
  • Peut utiliser différentes versions de Yarn pour différents projets ou différentes versions de Node.js via nvm

Les arguments du gestionnaire de packages système pour l'installation recommandée ont tendance à s'effondrer lorsque vous faites référence à Windows, où il n'y a pas de gestionnaire de packages officiel (à moins que vous ne comptiez Windows Update). De plus, les gestionnaires de packages Windows tels que Chocolatey ne sont souvent pas configurés pour les mises à jour automatiques.

Je ne suis pas sûr d'être entièrement d'accord avec la décision de l'équipe de Yarn à ce sujet, mais ils soulèvent certains arguments. Le projet Yarn est encore jeune et s’il devait remplacer npm, il n’aurait alors aucun sens à encourager npm en tant qu’installateur principal.

Quoi qu'il en soit, les installations via npm semblent fonctionner correctement pour l'instant dans la plupart des cas.


Sources:

63
Mike Hill

Il n’ya aucun inconvénient visible à installer Yarn via npm. En fait, j'ai choisi cette méthode moi-même pour plusieurs raisons:

  1. C'est clairement le moyen le plus simple de le faire. npm i --global yarn et vous pouvez littéralement remplacer npm par yarn sur votre console immédiatement.
  2. Si vous utilisez nvm et maintenez différents projets de code sur chaque version de NodeJS, vous pouvez installer Yarn sur une version et ne pas l'avoir sur l'autre.
  3. Honnêtement, la seule raison pour laquelle je peux penser qu’il n’est pas mentionné dans les installations spécifiques à la plate-forme, c’est que npm est une plate-forme agnostique.
18
nikjohn

Parce que npm n'est pas spécifique à la plate-forme et fonctionne sur presque tous les systèmes, il est répertorié comme une alternative. Il n'y a aucun avantage ou inconvénient sur les installations spécifiques à la plate-forme. La différence serait l'emplacement d'installation mais toutes les méthodes exposent la commande globale yarn à votre CLI.

Je dirais qu'ils l'ont répertorié comme "le moyen le plus simple" car la plupart des gens connaissent déjà très bien npm.

7
Mario Tacke