将 gulp lint 标准输出重定向到文件

Redirect gulp lint stdout to file

我设计了一个 gulp 任务来检查我项目中存在的 .ts 文件。当我 运行 它时,它在提示符上显示正确的输出,但我不确定如何将该输出重定向到文件以便打印 这样我就可以将完整的文件移交给开发人员以相应地更正代码。

我的任务看起来像:

gulp.task('lint', function() {
   gulp.src("src/**/**/*.ts")
     .pipe(tslint({
        formatter: "codeFrame",
        configuration: "./tslint.json"
    }))
    .pipe(tslint.report({
        configuration: {},
        rulesDirectory: null,
        emitError: true,
        reportLimit: 0,
        summarizeFailureOutput: true
    }))
    .pipe(gulp.dest('./Dest/reports'))
});

有人可以建议我如何实现这一点。

有关将 stdout 重定向到文件的一些很好的示例,请参阅 redirect via tee。它可以像

一样简单
gulp lint | tee logfile.txt

有了它,您将像往常一样在终端中获得输出,并在文件中获得副本,必要时将为您创建该副本。你没有说你使用的是什么终端。如果那行不通,也许:

gulp lint 1> logfile.txt

bash redirecting if you are using bash shell. Or SO: bash redirecting with truncating

如果您需要,链接的问题也有关于 stderr 的信息。

还有一种在 Powershell 中将输出复制到剪贴板的快速方法:

gulp lint | clip
gulp lint | scb             (doesn't add an extra newline at the end)

参见 pbcopy 与适用于 macOS 的剪辑相同。

一般来说,见pbcopy alternatives on Windows