Nous devons intégrer le lanceur de test Karma dans TeamCity et pour cela, je voudrais donner aux ingénieurs système un petit script (PowerShell ou autre) qui:
récupérer le numéro de version souhaité dans un fichier de configuration (je suppose que je peux le mettre en commentaire directement dans le
karma.conf.js
)vérifier si la version définie de karma runner est installée dans le référentiel global de npm
si ce n'est pas le cas, ou si la version installée est plus ancienne que souhaitée: choisissez et installez la bonne version
exécuter:
karma start .\Scripts-Tests\karma.conf.js --reporters teamcity --single-run
Donc ma vraie question est: "comment peut-on archiver un script, si la version souhaitée du package est installée?". Devriez-vous faire le contrôle, ou est-il sûr d'appeler à 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
la source
npm update
surtout avecnpm update -g
... ça ne fait pas ce que la plupart des peaole attendent de lui! Voir: github.com/npm/npm/issues/6247 et gist.github.com/othiym23/4ac31155da23962afd0enpm -g update
est sûr de l'utiliser à nouveau. github.com/npm/npm/issues/6247#issuecomment-92182814As of [email protected], 'npm update' will change package.json to save the new version as the minimum required dependency
docs.npmjs.com/cli/update.htmlnpm outdated
identifiera les packages qui doivent être mis à jour etnpm update <package name>
peut être utilisé pour mettre à jour chaque package. Mais avant [email protected],npm update <package name>
ne mettra pas à jour les versions de votre package.json, ce qui est un problème.Le meilleur flux de travail consiste à:
npm update
pour installer les dernières versions de chaque packageConsultez
npm-check-updates
pour aider avec ce flux de travail.npm-check-updates
pour répertorier les packages obsolètes (essentiellement la même chose que l'exécutionnpm outdated
)npm-check-updates -u
pour mettre à jour toutes les versions de votre package.json (c'est la sauce magique)npm update
comme d'habitude pour installer les nouvelles versions de vos packages en fonction du package mis à jour.jsonla source
npm outdated
affichera TOUS les packages .. même à l'intérieur d'autres packages .. mais ceux-ci ne seront pas mis à jour avec cette procédure donc ils apparaîtront toujours .. alors utilisez simplementnpm-check-updates
(comme vous l'avez réellement recommandé) qui n'affiche que les packages principaux depackage.json
...npm install --all-outdated
ça ne l'est pas ...npm update --save package_name
pour enregistrer la dernière modification dans package.json.npm update
vsnpm-check-updates
?Il existe également un module "frais" appelé
npm-check
:Il fournit également un moyen interactif pratique de mettre à jour les dépendances.
la source
Une étape simple:
$ npm i -g npm-check-updates && ncu -u && npm i
C'est tout. Toutes les versions du package
package.json
seront les dernières versions majeures.Éditer:
Que se passe-t-il ici?
la source
ncu
signifie node-check-updates et-a
est l'option 'upgradeAll'. Retrouvez toutes les options ici: npmjs.com/package/npm-check-updatesnpx -p npm-check-updates ncu -u
Pour mettre à jour un seul package local:
Découvrez d'abord vos packages obsolètes:
npm outdated
Mettez ensuite à jour manuellement le ou les packages souhaités en tant que:
npm update --save package_name
De cette façon, il n'est pas nécessaire de mettre à jour votre
package.json
fichier local .Notez que cela mettra à jour votre package vers la dernière version.
Si vous écrivez une version dans votre
package.json
fichier et faites:npm update package_name
Dans ce cas, vous obtiendrez uniquement la prochaine version stable (souhaitée) concernant la version que vous avez écrite dans votre
package.json
fichier.Et avec
npm list (package_name)
vous, découvrez la version actuelle de vos packages locaux.la source
Commandes NPM pour mettre à jour ou corriger les vulnérabilités de certains fichiers manifestes de dépendance
Utilisez la commande ci-dessous pour vérifier les vulnérabilités obsolètes ou dans vos modules de nœuds.
Si des vulnérabilités sont détectées, utilisez la commande ci-dessous pour résoudre tous les problèmes.
Si cela ne fonctionne pas pour vous, essayez
Si vous ne souhaitez pas utiliser le correctif d'audit forcé, vous pouvez corriger manuellement vos versions de dépendances en les modifiant dans les fichiers package-lock.json et package.json . Ensuite, exécutez
npm update && npm upgrade
la source
Vérifier les packages obsolètes
Vérifier et choisir les packages à mettre à jour
npm oudated img
npx npm-check -u img
la source
Pas de packages supplémentaires, pour simplement vérifier les obsolètes et mettre à jour ceux qui le sont, cette commande fera:
npm install $(npm outdated | cut -d' ' -f 1 | sed '1d' | xargs -I '$' echo '$@latest' | xargs echo)
la source
Lors de l'installation de packages npm (globalement ou localement), vous pouvez définir une version spécifique en utilisant la
@version
syntaxe pour définir une version à installer.En d'autres termes, faire:
npm install -g [email protected]
garantira que seulement 0.9.2 est installé et ne réinstallera pas s'il existe déjà.En guise de conseil, je suggère d'éviter les installations globales de npm partout où vous le pouvez. Beaucoup de gens ne réalisent pas que si une dépendance définit un fichier bin, il est installé dans ./node_modules/.bin/. Souvent, il est très facile d'utiliser cette version locale d'un module installé qui est définie dans votre package.json. En fait, les scripts npm ajouteront le ./node_modules/.bin sur votre chemin.
À titre d'exemple, voici un package.json qui, lorsque j'exécuterai,
npm install && npm test
installera la version de karma définie dans mon package.json et utilisera cette version de karma (installée dans node_modules / .bin / karma) lors de l'exécution dutest
script:Cela vous donne l'avantage de votre package.json définissant la version de karma à utiliser et de ne pas avoir à conserver cette configuration globalement sur votre boîte CI.
la source
test
script? Pouvez-vous s'il vous plaît me donner un indice sur la façon dont vous l'installez avec un script.npm test
. les documents npm sont plutôt bons ici: npmjs.org/doc/scripts.htmlDepuis [email protected]+, vous pouvez simplement faire:
Cela mettra automatiquement à jour le
package.json
fichier. Nous n'avons pas besoin de mettre à jour la dernière version manuellement, puis d'utilisernpm update <package name>
Vous pouvez toujours obtenir l'ancien comportement en utilisant
( Référence )
la source
Pour vraiment mettre à jour un seul package, installez NCU, puis exécutez-le uniquement pour ce package. Cela reviendra à la vraie dernière.
la source