假设我有20个任务,所有任务都捕获不同的文件类型并执行不同的操作。

还要说我有两个环境,开发和生产。

基本上,我想拥有这样的目录结构:

/app
    /product
        product.main.ctrl.js
        product.add.development.ctrl.js


在标准开发模式下运行时,我希望该应用程序像往常一样编译几乎所有的javascript。

但是,如果我在生产模式下运行gulp,我想排除其中包含单词development的所有文件。

我想知道是否有一种方法可以一次扩展所有任务,而不仅仅是手动将排除项添加到每个任务中:

// default task, I'd like to automatically extend this and exclude depending on evn.
gulp.task('scripts:main', function() {
    return gulp.src('/app/**/*.js', streamFunction);
});
// a working example of what I'd like to do
gulp.task('scripts:main', function() {
    return gulp.src(['/app/**/*.js', '!/app/**/*.development.js'], streamFunction);
});


因此,以上是我想扩展的默认场景,并且默认情况下是默认场景,否则我将排除开发文件,场景2是可以使用的东西,但是我不想将其添加到每个任务中。

这可能吗?

最佳答案

通常,您应该在所有任务中使用配置设置

var config = {
  jsProd : ['/app/**/*.js', '!/app/**/*.development.js'],
  jsDev : ['/app/**/*.js']
}


这使得路径更可重用...

在您的任务中,只需使用config变量

gulp.task('scripts:main', function() {
    return gulp.src(config.jsProd, streamFunction);
});


这是根据约翰·帕帕(John papa)的风格指南

关于javascript - 如何为所有gulp任务按后缀/扩展名过滤?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34667205/

10-12 00:01
查看更多