我的产品具有基本版本,但也有针对不同客户的定制版本。我正在使用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有关,还是我应该编写一个插件?
答案 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'));
});