如果Gulp中不存在其他文件,请包含文件

时间:2016-06-29 22:41:15

标签: gulp

我的产品具有基本版本,但也有针对不同客户的定制版本。我正在使用ASP.NET bundleconfigs为客户构建包含特定文件,但我正在尝试切换到Gulp。

这是我简化的目录结构:

- App
- App / Js
- App / Js / Base
- App / Js / Base / file1.js
- App / Js / Base / file2.js
- App / Js / Base / file3.js
- App / Js / Customer1
- App / Js / Customer1 / file2.js

我需要做的是构建一个单独的JS文件,其中包含来自Base的file1.js,来自Customer1目录的file2.js和来自Base的file3.js。

这可能与Gulp有关,还是我应该编写一个插件?

1 个答案:

答案 0 :(得分:4)

您可以使用gulp-filter过滤掉App/Js/Base/App/Js/Customer1/中具有相应文件的文件。

var gulp = require('gulp');
var concat = require('gulp-concat');
var filter = require('gulp-filter');
var addsrc = require('gulp-add-src');
var fileExists = require('file-exists');
var path = require('path');

gulp.task('default', function() {
  return gulp.src('App/Js/Base/*.js')
   .pipe(filter(function(file) {
     return !fileExists.sync('App/Js/Customer1/' + path.basename(file.path));
   }))
   .pipe(addsrc('App/Js/Customer1/*.js'))
   .pipe(concat('all.js'))
   .pipe(gulp.dest('dist'));
});