gulp:一个应用程序的多个库

时间:2016-07-05 04:36:33

标签: gulp

我正在尝试使用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来说,这有点令人遗憾......有人有想法解决这个问题吗?

0 个答案:

没有答案