Ich habe beschlossen, mit npm-Skripten als Build-Tool zu experimentieren, und bisher gefällt es mir. Ein Problem, das ich lösen möchte, ist das Ausführen eines Skripts zum Ausführen von jshint, wenn etwas nicht flusen kann. Ich erhalte eine Menge "npm ERR!" Linien. Ich möchte diese unterdrücken, da die Ausgabe vom Linter aussagekräftiger ist.
Gibt es eine gute Möglichkeit, dies global festzulegen, und gibt es eine Möglichkeit, es für jeden Skriptlauf festzulegen?
Antworten:
Alle Skripte:
Sie können dies beheben, indem Sie die Ausgabe von npm insgesamt unterdrücken und die Protokollstufe auf verschiedene
silent
Arten einstellen :Bei jedem
npm run
Aufruf:Oder global durch Erstellen einer
.npmrc
Datei (diese Datei kann sich entweder in Ihrem Projektverzeichnis oder in Ihrem Basisordner befinden) mit den folgenden Optionen:Ressourcen:
Konfiguration der npm-Protokollebene: https://docs.npmjs.com/misc/config#loglevel
npmrc: https://docs.npmjs.com/misc/config#loglevel
Jedes Skript einzeln:
Ein einfacher Trick, den ich verwendet habe, um dieses Problem bei bestimmten Skripten wie Flusen zu umgehen, besteht darin,
|| true
am Ende solcher Skripte anzuhängen . Dies funktioniert ohne Änderungen der npm-Konfiguration.Dadurch wird sichergestellt, dass das Skript immer mit einem
0
Status beendet wird. Dies bringt npm dazu, zu glauben, dass das Skript erfolgreich ist, und versteckt somit dieERR
Nachrichten. Wenn Sie expliziter sein möchten, können Sie|| exit 0
stattdessen anhängen, und es sollte das gleiche Ergebnis erzielt werden.{ "scripts": { "lint": "jshint || true", } }
quelle
|| true
. das ist keine gute lösung. Ich möchte nicht ALLE anderen Befehle mit stumm schalten.npmrc
. Und dieses spezielle Skript-s
ständig auszuführen, scheint ebenfalls sehr dumm zu sein. Hat jemand eine bessere Lösung gefunden, um ein einzelnes Skript zum Schweigen zu bringen?Sie sollten beide die nutzen können
--quiet
und--silent
Optionen, wie in--quiet
wird stderr und Warnungen anzeigen,--silent
sollte fast alles unterdrückenSie können stdout / stderr
/dev/null
auch wie folgt senden :npm install > "/dev/null" 2>&1
oder weniger versbose
npm install &> /dev/null
quelle
Behält Warnungen und Fehler bei und unterdrückt den ADHS-Fortschrittsbalken auf Terminals, die ihn unterstützen.
quelle
Sie können dies in Ihrem Skript tun, indem Sie die Ereignis-Listener entfernen
#!/usr/bin/env node process.removeAllListeners('warning'); // Do your thang without triggering warnings
quelle