gpt4 book ai didi

Gulp dest.on 不是函数

转载 作者:行者123 更新时间:2023-12-01 13:43:07 24 4
gpt4 key购买 nike

在使用 gulp-imagemin 进行优化图像 的 gulp 任务中,我遇到了烦人的 dest.on 错误。我在这里进行了一些不常见的设置,使用 gulp-load-plugins 将我的所有任务与实际的 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!"))
}
};

问题似乎出现在最后一行,我正在通过我的插件对象发送 gutil 的依赖项,然后引用它并将其称为 log() 方法。没有日志也能正常工作,我在这里缺少什么?

最佳答案

gulp.dest() 之类的东西和imagemin() 之类的插件返回 stream.Transform objects .只有那些你可以传递给 .pipe()

gutil.log() 另一方面不返回 stream.Transform 因此不能传递给 .pipe().

如果您仍想在流中使用它,则必须监听 node.js streams 公开的事件之一。 ,例如 'data' event (为每个文件调用):

gulp.src(config.assetsDir + '/a/images/*')
.on('data', function() { plugins.util.log('Hello'); })

或者 'end' event (流完成时调用):

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

关于Gulp dest.on 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38257388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com