我正在尝试使用gulp为单个应用程序构建多个库。
我有这个目录结构
dist/ # expected result
lib1.js
lib2.js
src/
libs/
lib1/
... # js files for lib1
lib2/
... # js files for lib2
wrap/ # wrappers, one per lib
lib1.js
lib2.js
我使用through2编写了这个gulp任务:
gulp.task('build', function() {
var dn = 'azerty'; // whatever
return gulp.src('src/libs/**/*.js')
.pipe(through.obj(function(file, enc, cb) {
// for extracting a lib's dirname
var str = path.dirname(file.path),
parts = str.split('/'),
rev = parts.reverse();
dn = rev[0];
util.log(dn); // al is ok here...
cb();
}))
.pipe(concat(dn + '.js'))
.pipe(wrap({ src : 'src/wrap/' + dn + '.js'}))
.pipe(gulp.dest('dist'));
});
但它不能正常工作,'dn'变量的值似乎在concat点丢失,这很奇怪,因为'dn'是相对于任务的全局变量:*
如何解决这个问题?通过使用gulp-foreach或其他东西?
问候。
编辑:对于gulp-foreach来说,这有点令人遗憾......有人有想法解决这个问题吗?