假设我有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/