ビルドツールとしてnpmスクリプトを試すことにしましたが、今のところ気に入っています。私が解決したい問題の1つは、何かがリンティングを通過しないときにjshintを実行するスクリプトを実行すると、大量の「npmERR!」が発生することです。行。リンターからの出力の方が意味があるので、これらを抑制したいと思います。
これをグローバルに設定する良い方法はありますか?また、スクリプトの実行ごとに設定する方法はありますか?
ビルドツールとしてnpmスクリプトを試すことにしましたが、今のところ気に入っています。私が解決したい問題の1つは、何かがリンティングを通過しないときにjshintを実行するスクリプトを実行すると、大量の「npmERR!」が発生することです。行。リンターからの出力の方が意味があるので、これらを抑制したいと思います。
これをグローバルに設定する良い方法はありますか?また、スクリプトの実行ごとに設定する方法はありますか?
回答:
silent
いくつかの方法でログレベルをに設定することにより、npmの出力を全体的に抑制することでこれを修正できます。
npm run
呼び出しごとに:
npm run --silent <your-script>
または、次の.npmrc
ファイル(このファイルはプロジェクトディレクトリまたはホームフォルダのいずれかにあります)をグローバルに作成します。
loglevel=silent
リソース:
npmログレベルの設定:https://docs.npmjs.com/misc/config#loglevel
npmrc:https://docs.npmjs.com/misc/config#loglevel
リンティングなどの特定のスクリプトでこの問題を回避するために使用した簡単なトリックは|| true
、そのようなスクリプトの最後に追加することです。これは、npm構成を変更しなくても機能します。
これにより、スクリプトは常に0
ステータスで終了します。これにより、npmはスクリプトが成功したと思い込ませ、ERR
メッセージを非表示にします。より明確にしたい場合は、|| exit 0
代わりに追加することができ、同じ結果が得られるはずです。
{
"scripts": {
"lint": "jshint || true",
}
}
|| true
; それは良い解決策ではありません。を使用して他のすべてのコマンドをサイレントにしたくありません.npmrc
。そして、この特定のスクリプトを-s
常に実行することも非常にばかげているようです。誰かが単一のスクリプトをサイレンシングするためのより良い解決策を見つけましたか?
次のように、--quiet
と--silent
オプションの両方を使用できるはずです。
npm install --quiet
--quiet
stderrと警告が表示され、--silent
ほぼすべてを抑制します
次の/dev/null
ように、stdout / stderrをに送信することもできます。
npm install > "/dev/null" 2>&1
以下のversbose
npm install &> /dev/null
--quiet
npmスクリプトで動作します;)@ hackel