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!") });