将 Gulp 控制台输出记录到文件

Ole*_*Vik 2 console logging 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
Run Code Online (Sandbox Code Playgroud)

很多专注于日志的Gulp插件似乎主要是在控制台做这个,已经实现了,只有gulp-messenger保存为文本(如json)。这可以通过例如gulp-util来实现吗?

Ole*_*Vik 5

正如Sven Schoenung在评论中所建议的那样,最好在 Gulp 本身之外进行。本质上,在终端中运行任务时,两个选项按预期工作:

要“静默”运行,即没有控制台输出:

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

要“正常”运行,即使用控制台输出:

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

两者都将控制台的输出保存到output.logGulp 工作目录的根目录中。