gpt4 book ai didi

javascript - Gulp/Lazypipe : Error: Invalid call to lazypipe(). pipe():参数不是函数

转载 作者:太空宇宙 更新时间:2023-11-04 16:08:51 25 4
gpt4 key购买 nike

我收到如下错误:

Error: Invalid call to lazypipe().pipe(): argument is not a function.

Remember not to call stream creation functions directly! e.g.: pipe(foo), not pipe(foo()).

这对我来说完全有意义(特别是因为已经有一些相关的问题),但是我如何将参数传递给惰性管道?

function buildPipes(fileName) {
return lazypipe()
.pipe($.concat(fileName))
.pipe(gulp.dest(destFull))
.pipe($.rename(minFileName))
.pipe($.babel({
presets: ["es2015"]
}))
.pipe($.uglify({
compress: {
hoist_funs: false
}
}))
.pipe(gulp.dest(dest));
}

我的脚本的另一部分,使用管道:

var vendor = gulp.src(sources.vendor).pipe(buildPipes(fileName));

最佳答案

lazypipe docs给出几个如何将参数传递给插件的示例。这是一个:

var jsTasks = jsHintTasks
.pipe(gulp.dest, 'build/js');

更一般化:对于任何返回 stream.Transform 的插件函数 foo以下转换适用:

正常使用->惰性管道使用

  • .pipe(foo()) -> .pipe(foo)
  • .pipe(foo(param1)) -> .pipe(foo, param1)
  • .pipe(foo(param1, param2)) -> .pipe(foo, param1, param2)
  • 等等..

就您而言:

function buildPipes(fileName) {
return lazypipe()
.pipe($.concat, fileName)
.pipe(gulp.dest, destFull)
.pipe($.rename, minFileName)
.pipe($.babel, {
presets: ["es2015"]
})
.pipe($.uglify, {
compress: {
hoist_funs: false
}
})
.pipe(gulp.dest, dest);
}

另请注意,lazypipe().pipe(foo) 不返回流。它返回一个返回流的函数,因此如果要将构造的惰性管道通过管道传输到另一个流,则需要调用该函数。这意味着而不是:

var vendor = gulp.src(sources.vendor).pipe(buildPipes(fileName));

你需要这样做:

var vendor = gulp.src(sources.vendor).pipe(buildPipes(fileName)());

(或者,您可以在 buildPipe() 函数本身中执行函数调用,如 this example 中所示)

关于javascript - Gulp/Lazypipe : Error: Invalid call to lazypipe(). pipe():参数不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41672126/

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