Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用params启动Gulp任务?_Gulp - Fatal编程技术网

如何使用params启动Gulp任务?

如何使用params启动Gulp任务?,gulp,Gulp,我需要为特定文件应用构建任务。为了找到它们,我使用了典型的模板。但是我不明白如何从gulp.src传递参数(文件路径) 理想的解决办法 gulp.task('bundles', function() { gulp.src('bundles/**/*.js'). pipe(gulp.start('build', file.path)); }); gulp.task('build', function (path) { // use here }); (由于rep的原因,无法发表

我需要为特定文件应用构建任务。为了找到它们,我使用了典型的模板。但是我不明白如何从gulp.src传递参数(文件路径)

理想的解决办法

gulp.task('bundles', function() {
  gulp.src('bundles/**/*.js').
    pipe(gulp.start('build', file.path));
});

gulp.task('build', function (path) {
  // use here
});
(由于rep的原因,无法发表评论,抱歉)

我假设您的示例代码并没有包含所有内容,但是为什么不合并这些任务,并在构建任务中使用gulp.src()而不是调用另一个任务呢

也许这对你很有用,但从你展示的内容来看,我找不到一个解释来解释你为什么要这样做,而不是简单地做一些事情,比如:

gulp.task('build', function (path) {
    gulp.src('bundles/**/*.js)
    //Your code for this task
});
当然,它删除了bundles任务,但它并没有像现在这样有用。
如果我错了,请不要犹豫发表评论,我会尽我所能帮助你。

这个问题有点陈腐,我不确定我是否完全理解你在这里想要实现的目标,但我认为你想要的是

如果这不是你想要的,你可能想澄清你的问题

用法示例:

var lazypipe = require('lazypipe'),
g = require('gulp-load-plugins')({lazy: true}),

jsTransformPipe = lazypipe()
    .pipe(g.jshint) // <-- Notice the notation: g.jshint, not g.jshint()
    .pipe(g.concat, 'bundle.js'), // <-- Notice how the param is passed to g.concat, as a second param to .pipe()

jsSourcePipe = lazypipe()
    .pipe(gulp.src, './**/*.js');

gulp.task('bundle', function() {
    jsSourcePipe()
        .pipe(jsTransformPipe()) // <-- You execute the lazypipe by calling it as a function
        .pipe(gulp.dest('../build/');
});
var lazypipe=require('lazypipe'),
g=require('gulp-load-plugins')({lazy:true}),
jsTransformPipe=lazypipe()
.pipe(g.jshint)/首先,
gulp.task('build',函数(path)
永远不会工作。gulp任务的唯一有效参数是发出异步任务完成信号的回调。如果您尝试运行上述操作,gulp将期望
path
是一个函数,并且除非调用该函数,否则任务永远不会完成。在本例中,“构建”任务应该是从e“捆绑”管道,而不是任务

更好的问题是:我如何在一个gulp管道中运行一个自定义函数?像这样的插件可能会让你接近,但创建一个内联gulp插件来调用你的函数并不困难

Gulp管道接收一个对象流,其中包含一个、一个编码和一个回调。下面是一个基本框架,用于针对Gulp管道中的文件调用任意函数:

var gulp=require('gulp');
var-through=require('through2');
gulp.task('stack',function(){
返回gulp.src('./src/*.js')
.pipe(通过.obj)(函数(文件、enc、cb){
//file.path是文件的完整路径
myBuildFunction(file.path);
cb(空,文件);
}))
.管道(吞咽目标('./建造/');
})
这可能非常强大。要修改文件的内容,只需更改
file.contents
缓冲区。要重命名或重新定位文件,请更改
file.path
。一切都可以在gulp的本机管道中完成