J'ai décidé d'expérimenter les scripts npm comme outil de construction et jusqu'à présent, je l'aime bien. Un problème que j'aimerais résoudre est lors de l'exécution d'un script pour exécuter jshint lorsque quelque chose ne passe pas le linting, j'obtiens une tonne de "npm ERR!" lignes. Je voudrais les supprimer car la sortie du linter est plus significative.
Existe-t-il un bon moyen de définir cela globalement et existe-t-il un moyen de le définir pour chaque exécution de script?
Réponses:
Tous les scripts:
Vous pouvez résoudre ce problème en supprimant la sortie de npm dans son ensemble, en définissant le niveau de journalisation de
silent
plusieurs manières:À chaque
npm run
invocation:Ou globalement en créant un
.npmrc
fichier (ce fichier peut être dans le répertoire de votre projet ou dans votre dossier de départ) avec les éléments suivants:Ressources:
Configuration du niveau de journalisation npm: https://docs.npmjs.com/misc/config#loglevel
npmrc: https://docs.npmjs.com/misc/config#loglevel
Chaque script, individuellement:
Une astuce simple que j'ai utilisée pour contourner ce problème sur certains scripts comme le linting est d'ajouter
|| true
à la fin de ces scripts. Cela fonctionnera sans aucun changement de configuration npm.Cela garantira que le script se terminera toujours avec un
0
statut. Cela incite npm à penser que le script réussit, cachant ainsi lesERR
messages. Si vous voulez être plus explicite, vous pouvez ajouter à la|| exit 0
place et cela devrait aboutir au même résultat.{ "scripts": { "lint": "jshint || true", } }
la source
|| true
; ce n'est pas une bonne solution. Je ne veux pas désactiver TOUTES les autres commandes en utilisant.npmrc
. Et exécuter ce script particulier avec-s
tout le temps semble également très ridicule. Quelqu'un a-t-il trouvé une meilleure solution pour faire taire un seul script?Vous devriez pouvoir utiliser à la fois les options
--quiet
et--silent
, comme dans--quiet
affichera stderr et avertissements,--silent
devrait supprimer presque toutVous pouvez également envoyer stdout / stderr vers
/dev/null
, comme ceci:npm install > "/dev/null" 2>&1
ou moins versbose
npm install &> /dev/null
la source
Gardera les avertissements et les erreurs, et supprimera la barre de progression du TDAH sur les terminaux qui la prennent en charge.
la source
Vous pouvez le faire dans votre script en supprimant les écouteurs d'événements
#!/usr/bin/env node process.removeAllListeners('warning'); // Do your thang without triggering warnings
la source