913 votes

npm vérifie et met à jour le paquet si nécessaire

Nous devons intégrer Karma test runner dans TeamCity et pour cela j'aimerais donner aux sys-engineers des petits script (powershell ou autre) qui le feraient :

  1. récupérer le numéro de version souhaité à partir d'un fichier de configuration (je suppose que je peux le mettre en commentaire dans le fichier de configuration) karma.conf.js )

  2. vérifier si la version définie de karma runner est installée dans le repo global de npm

  3. si ce n'est pas le cas, ou si la version installée est plus ancienne que celle souhaitée : récupérer et installer la bonne version

  4. exécutez-le : karma start .\Scripts-Tests\karma.conf.js --reporters teamcity --single-run

Donc ma vraie question est : "comment vérifier dans un script, si la version désirée du paquet est installée ?". Faut-il faire la vérification, ou est-il prudent d'appeler simplement npm -g install chaque fois ?

Je ne veux pas toujours vérifier et installer la dernière version disponible, car d'autres valeurs de configuration peuvent devenir incompatibles.

1316voto

dublx Points 496

Pour vérifier si un module d'un projet est "ancien" :

npm outdated

' obsolète vérifiera chaque module défini dans package.json et voir s'il y a une version plus récente dans le registre de NPM.

Par exemple, disons xml2js 0.2.6 (situé dans node_modules dans le projet actuel) est périmée car une version plus récente existe (0.2.7). Vous verrez :

xml2js@0.2.7 node_modules/xml2js current=0.2.6

A mise à jour toutes les dépendances, si vous êtes sûr que c'est souhaitable :

npm update

Ou, pour mettre à jour une seule dépendance telle que xml2js :

npm update xml2js

Pour mettre à jour package.json les numéros de version, ajoutez le --save drapeau :

npm update --save

13 votes

Soyez prudent avec npm update notamment avec npm update -g ... il ne fait pas ce que la plupart des gens attendent de lui ! Voir : github.com/npm/npm/issues/6247 y gist.github.com/othiym23/4ac31155da23962afd0e

12 votes

@jbandi A partir de npm@2.6.1, npm -g update peut être réutilisé en toute sécurité. github.com/npm/npm/issues/6247#issuecomment-92182814

25 votes

Sachez que npm update ne mettra pas à jour votre fichier package.json, comme indiqué dans la réponse de @Erik Olson.

574voto

Erik Olson Points 449

npm outdated identifiera les paquets qui doivent être mis à jour, et npm update <package name> peut être utilisé pour mettre à jour chaque paquet. Mais avant npm@5.0.0, npm update <package name> ne mettra pas à jour les versions dans votre package.json, ce qui est un problème.

La meilleure façon de procéder est de :

  1. Identifier les emballages périmés
  2. Mettez à jour les versions dans votre package.json
  3. Exécuter npm update pour installer les dernières versions de chaque paquet

Vérifiez npm-check-updates pour faciliter ce flux de travail.

  • Instalar npm-check-updates
  • Exécuter npm-check-updates pour lister les paquets qui ne sont plus à jour (en gros, c'est la même chose que de lancer la commande npm outdated )
  • Exécuter npm-check-updates -u pour mettre à jour toutes les versions dans votre package.json (c'est la sauce magique)
  • Exécuter npm update comme d'habitude pour installer les nouvelles versions de vos paquets sur la base du package.json mis à jour

7 votes

npm outdated affichera TOUS les paquets même à l'intérieur d'autres paquets mais ceux-ci ne seront pas mis à jour avec cette procédure et ils apparaîtront toujours donc utilisez simplement npm-check-updates (comme vous l'avez recommandé) qui ne montre que les paquets principaux à partir de package.json ... ceci est pertinent

3 votes

Avec le fil, c'est beaucoup plus facile : il suffit de taper " mise à niveau du fil ".

182 votes

Pourquoi dois-je installer un gestionnaire de mise à jour pour gérer mon gestionnaire de paquets ? Ne sommes-nous pas d'accord pour dire que c'est stupide ? Cela devrait être aussi simple que npm install --all-outdated mais ce n'est pas le cas...

226voto

alecxe Points 50783

Il existe également un module "frais" appelé npm-check :

npm-check

Vérifiez les dépendances périmées, incorrectes et inutilisées.

enter image description here

Il fournit également un moyen interactif pratique pour mettre à jour les dépendances avec npm-check -u .

157voto

blrbr Points 121

Une étape facile :

$ npm i -g npm-check-updates && ncu -u && npm i

C'est tout. Toutes les versions du paquet dans package.json seront les dernières versions majeures.

Edit :

Qu'est-ce qui se passe ici ?

  1. Installer un paquet qui vérifie les mises à jour pour vous.

  2. Utilisez ce paquet pour mettre à jour toutes les versions des paquets dans votre système d'exploitation. package.json (-u est l'abréviation de --updateAll).

  3. Installez toutes les nouvelles versions des paquets.

84voto

gugol Points 2219
  • Pour mettre à jour un seul paquet local :

    1. Découvrez d'abord vos paquets périmés :

      npm outdated

    2. Ensuite, mettez à jour le ou les paquets que vous voulez manuellement comme :

      npm update --save package_name

De cette façon, il n'est pas nécessaire de mettre à jour votre fichier local package.json fichier.

Notez que cela mettra à jour votre paquet à la dernière version.

  • Si vous écrivez une version dans votre package.json et faire :

    npm update package_name

    Dans ce cas, vous obtiendrez juste la prochaine version stable (souhaitée) concernant la version que vous avez écrite dans votre fichier package.json fichier.

Et avec npm list (package_name) vous pouvez connaître la version actuelle de vos paquets locaux.

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