Gulp 吞咽-使用参数启动任务
因此,我正在尝试创建一个gulp工作流,并且我想为一些任务实现一些选项,比如Gulp 吞咽-使用参数启动任务,gulp,Gulp,因此,我正在尝试创建一个gulp工作流,并且我想为一些任务实现一些选项,比如gulp copy images--changed。现在,我创建了一个监视任务,它显然监视所有的图像文件,并且应该使用--changed标志启动copy images 理想情况下,我想这样做: gulp.task('copy-images', function(){ // some code }); gulp.task('watch', function(){ gulp.watch(config.ima
gulp copy images--changed
。现在,我创建了一个监视任务,它显然监视所有的图像文件,并且应该使用--changed标志启动copy images
理想情况下,我想这样做:
gulp.task('copy-images', function(){
// some code
});
gulp.task('watch', function(){
gulp.watch(config.images, ['copy-images --changed']);
});
我也非常清楚我可以做到:
gulp.task('copy-images', function(){
// some code
});
gulp.task('copy-images-changed', function(){
// some code
});
gulp.task('watch', function(){
gulp.watch(config.images, ['copy-images']);
});
但这意味着代码重复。有人提出解决方案或建议吗
提前谢谢 Gulp不提供为任务指定选项的内置方式。您必须使用外部选项解析器模块,如。有关该主题的更多信息,请参阅 这也意味着将类似于
['copy-images--changed']
的内容传递到gulp.watch()
将不起作用。整个字符串将仅解释为任务名称
对您来说,最好的方法是将任务的代码分解成一个函数,然后从任务和手表中调用此函数:
var argv = require('yargs').argv;
function copyImages(opts) {
if (opts.changed) {
// some code
} else {
// some other code
}
}
gulp.task('copy-images', function() {
copyImages(argv);
});
gulp.task('watch', function(){
gulp.watch(config.images, function() {
copyImages({changed:true});
});
});
以上内容应涵盖您的所有基础:
将执行吞下复制图像
//其他一些代码
将执行吞下复制图像--changed
//一些代码
将在监视的文件更改时执行gulpwatch
//某些代码