Gulp 吞咽dest.on不是一个函数

Gulp 吞咽dest.on不是一个函数,gulp,Gulp,我在使用gulpimagemin优化图像的任务中遇到了恼人的dest.on错误。我在这里有一个不太常见的设置,使用gulpload插件,以便将我的所有任务与实际的gulpfile分开 关于我所要求的任务: "gulp-imagemin": "^3.0.1", "gulp-util": "^3.0.7", 这样做的目的是在为每个流生成图像时记录一条消息,gulp.dest()似乎不喜欢我的gutil.log()方法: module.exports = function(gulp, plugins

我在使用
gulpimagemin
优化图像的任务中遇到了恼人的dest.on错误。我在这里有一个不太常见的设置,使用
gulpload插件
,以便将我的所有任务与实际的gulpfile分开

关于我所要求的任务:

"gulp-imagemin": "^3.0.1",
"gulp-util": "^3.0.7",
这样做的目的是在为每个流生成图像时记录一条消息,
gulp.dest()
似乎不喜欢我的
gutil.log()
方法:

module.exports = function(gulp, plugins, config) {

  return function()
  {
    var stream =
        // Optimize Images for Version A //
        gulp.src(config.assetsDir + '/a/images/*')
            .pipe(plugins.util.log('Hello'))
            .pipe(plugins.imagemin({
                progressive: true,
                optimizationLevel: 7,
                svgoPlugins: [{removeViewBox: false}],
                use: [plugins.pngquant()]
            }))
            .pipe(gulp.dest(config.publicDir + 'images/a/'))

        // Optimize Images for Version B //
        gulp.src(config.assetsDir + '/b/images/*')
            .pipe(plugins.imagemin({
                progressive: true,
                optimizationLevel: 7,
                svgoPlugins: [{removeViewBox: false}],
                use: [plugins.pngquant()]
            }))
            .pipe(gulp.dest(config.publicDir + 'images/b/'))
            .pipe(plugins.util.log("Task Done!"))
  }
};

问题似乎在最后一行,我通过我的plugins对象发送
gutil
的依赖项,然后引用它并调用它的
log()
方法。如果没有日志,它可以正常工作,我这里缺少什么?

gulp.dest()
这样的东西和
imagemin()
这样的插件返回。只有那些您可以传递到
.pipe()

另一方面,
gutil.log()
不会返回
流.Transform
,因此无法传递到
.pipe()

如果仍要从流中使用它,则必须侦听由(为每个文件调用的)公开的事件之一:

或(流完成时调用):

gulp.src(config.assetsDir + '/a/images/*')
  .on('data', function() { plugins.util.log('Hello'); })
  .pipe(gulp.dest(config.publicDir + 'images/b/'))
  .on('end', function() { plugins.util.log("Task Done!") });