【问题标题】:Gulp debugging - piping to process.stdout gives TypeError('invalid data')Gulp 调试 - 到 process.stdout 的管道给出 TypeError('invalid data')
【发布时间】:2025-11-29 16:45:01
【问题描述】:

我正在尝试调试我编写的 Gulp 任务。我尝试使用'gulp-debug' 模块,但它真正做的只是统计一个文件……这对我没有用。

对于初学者,我怎样才能让进程转到终端?我想看看wiredep 正在输出什么。我试过.pipe(process.stdout),但我得到了TypeError('invalid data')

var bowerStream = gulp.src('./app/bower_components')
    .pipe(wiredep())
    .pipe(process.stdout)

【问题讨论】:

标签: javascript angularjs gulp


【解决方案1】:

使用through2 这是可能的:

gulp.src('./app/index.html')
  .pipe(wiredep({directory: './app/bower_components'}))
  .pipe(through2.obj(function(obj, enc, next) {
    this.push(obj.contents);
    next();
  })).pipe(process.stdout);

【讨论】:

  • 您似乎找到了自己的答案,但由于 Q&A 的 SO 风格是关于提供长期高质量的答案,因此首选风格是您提供自己的答案是一种完整的解释方式。比如这个'through2'和相关函数的作用是什么?
  • 我做了,因为我提供了指向 through2 的链接,您可以在其中了解它。如果你点击那个链接并了解它,你就会知道它的作用和相关的功能。
【解决方案2】:

我知道这有点晚了,但是我刚刚写了一篇关于如何在 Visual Studio 代码中调试 gulp 任务的博客文章: https://hansrwindhoff.wordpress.com/2015/05/05/debugging-task-runner-tasks-like-gulp-with-visual-studio-code-editordebugger/

您可以启动 VSCode 调试器来运行 gulp 任务,然后对所有插件和 gulpfile 进行完整的源代码级调试。很方便!

【讨论】: