2016-01-22 103 views
0

说我有一个看起来像这样一个任务:如何将参数传递给Gulp任务?

settings.localLESS = ["../css/*.less"]; 

gulp.task('compile-less-files', function(){ 
    gulp.src(settings.localLESS) 
    .pipe(less()) 
    .pipe(minifyCSS()) 
    .pipe(gulp.dest(someDest)); 
}) 

gulp.watch(settings.localLESS, ['compile-less-files']).on('change', function(event) { 
     ... 
}); 

但我不想编译它们。我只想编译我作为参数传递给该任务的文件。也许这样?

gulp.task('compile-less-file', function(fileName){ 
    gulp.src(fileName) 
    .pipe(less()) 
    .pipe(minifyCSS()) 
    .pipe(gulp.dest(someDest)); 
}) 

gulp.watch(settings.localLESS, ['compile-less-file']).on('change', function(event) { 
    ... 
}); 

更新:我想成立观察家所有源项目文件和任何一次文件将改为运行特定的任务。

回答

0

尝试将您的项目分解为小部分文件,然后创建一个新文件,该文件将充当“主”文件,您可以在其中导入其他文件。这样,您可以在导入时选择要编译哪个文件。

0

您可以使用yargs - https://www.npmjs.com/package/yargs

npm install --save-dev yargs 

OR

您可以使用节点的process.argv

gulp.task('taskname', function() { 
    console.log(process.argv); 
}); 

然后你就可以将参数传递给你的任务,像下面

gulp taskname --option 123