web-dev-qa-db-fra.com

Comment puis-je mettre à jour des paquets globaux dans Yarn?

J'ai essayé quelques commandes CLI possibles mais aucune ne semble réellement mettre à jour les paquets installés avec yarn global add.

yarn global upgrade & yarn upgrade global les deux ne fonctionnent pas correctement. Existe-t-il un moyen de mettre à niveau les packages globaux?

51
thibmaek

TL; DR:

Comme le dit webjay , il vous suffit de:

yarn global upgrade

à partir de yarn version 1.2.1.

Pour les versions antérieures:

(cd ~/.config/yarn/global && yarn upgrade)

Vérification et réparation

Malheureusement, il n’existe actuellement aucun yarn global check.

Vous pouvez exécuter yarn global add --force pour réinstaller tous les packages.

Pour check global packages, vous pouvez traiter ~/.config/yarn/global/ comme un package local, car:

  • ~/.config/yarn/global/package.json a des dépendances pour tous les packages globaux
  • ~/.config/yarn/global/node_modules contient tous les packages globaux. 

Vérifiez tous les packages globaux et réinstallez-le uniquement en cas d'erreur:

$ (cd ~/.config/yarn/global && yarn check || yarn install --force)
43
Tom Hale

Utiliser yarn global add <package>@latest mettra à jour un paquet spécifique si c'est ce que vous essayez de faire.

Mettre à jour

Le yarn global upgrade récemment ajouté met à jour tous les packages. Cela n'existait pas au moment de la réponse initiale.

23
cchamberlain

Un problème a déjà été créé à cet effet sur https://github.com/yarnpkg/yarn/issues/776

6
morrislaptop

J'utilise yarn global upgrade

3
webjay

Notez que per yarnpkg/yarn # 5001 , yarn global upgrade foo ne met pas toujours à niveau un paquet vers la dernière version, même avec le drapeau --latest.

Par exemple, si vous avez foo v12.0.1 installé et que v13.0.0 est disponible, la mise à niveau vers v13.0.0 ne serait pas mise à niveau car yarn global upgrade ne dépasse pas actuellement les obstacles majeurs dans semver par défaut (voir la discussion dans le problème ci-dessus pour plus de détails).

Lancer yarn global add foofait met à niveau la version actuellement installée même si une version majeure se produit entre la version actuellement installée et la dernière version.

Je crois que yarn global upgrade-interactive permettrait également de mettre à niveau les problèmes antérieurs liés aux versions majeures.

1
Taylor Edmiston