2016-05-07 9 views
1

私はGulpをテキストや画像を処理するシンプルなビルドシステムの一部として使用しており、これらのファイルのコピー、処理、および削除の一連の汎用タスクを定義しています。 Gulpと使用されるプラグインの両方がコンソールに多くの出力を与えますが、この出力をファイルでどのように保存できますか?Gulpコンソールの出力をファイルに記録する

それがコンソールに現れたように(コンソールで一般的であるように、色なし)理想的には、コンソールの正確な内容は同じ形式でconsole.logに記録されるであろう:ガルプの

[13:35:21] Images: 208 items 
[13:35:23] gulp-imagemin: Minified 208 images (saved 0 B - 0%) 
[13:35:23] Finished 'build:images' after 19 s 
[13:35:23] Starting 'clean:responsive'... 
[13:35:23] Deleting /responsive/**/* 
[13:35:23] Finished 'clean:responsive' after 171 ms 
[13:35:23] Starting 'default'... 
[13:35:23] Finished 'default' after 57 μs 

多くロギングに焦点を当てたプラグインは、すでに達成されているコンソールで主にこれを行うように見え、gulp-messengerのみがテキストに保存されます(jsonとして)。これは例えばgulp-utilで実現できますか?

+0

これはgulpプラグインの仕事ではありません。 gulpを呼び出すときは、単にSTDOUTとSTDERRをファイルにリダイレクトする必要があります。どのUnixシステムでも、これはトリックを行うべきです: 'gulp task-name> output.log 2>&1'。 –

+0

私はそれについて本当に考えていませんでしたが、あなたの例は(Windows上でも)うまくいきます。のみ、コンソール出力を抑制してログに記録します。どちらも起こりますか?私は '2>&1'とは関係がありますが、それをどのように解釈するかについてはあまりよく分かりません。 – OleVik

+0

'2>&1'はSTDERR(2)をSTDOUT(1)にリダイレクトし、2つを効果的にマージします。コンソールとLinux上のファイルへのロギングは、次のように動作します: 'gulp task-name 2>&1 | tee output.log'となります。 Windowsについての手掛かりはありません。 –

答えて

3

Sven Schoenungは、コメントで示唆しているように、これはGulpの外で行うのが最適です。本質的には、ターミナル2つのオプションでタスクを実行するときに期待どおりに動作:

は「静かに」実行するには、つまり、コンソール出力なし:

gulp task-name > output.log 2>&1

は「正常に」実行するには、つまり、コンソール出力で:

gulp task-name 2>&1 | tee output.log

の両方がガルプ作業ディレクトリのルートにoutput.logに、コンソールの出力を保存します。

関連する問題