【问题标题】:Gulp.js: task based on forEach loopGulp.js:基于 forEach 循环的任务
【发布时间】:2015-08-17 08:58:21
【问题描述】:

我有一个如下所示的对象数组。

var bundles = [
  {
    src: 'js/my-component/*.js',
    bundleName: 'my-component.js'
  },
  {
    src: 'js/my-other-component/*.js',
    bundleName: 'my-other-component.js'
  }
]

我希望 gulp 任务处理/连接数组中的每个条目,但它似乎不起作用。

gulp.task('bundlejs', function(){
    return bundles.forEach(function(obj){
      return gulp.src(obj.src)
      .pipe(concat(obj.bundleName))
      .pipe(gulp.dest('js/_bundles'))
    });
});

【问题讨论】:

    标签: javascript gulp gulp-concat


    【解决方案1】:

    您可能应该合并流并返回结果,以便任务在适当的时间完成:

    var es = require('event-stream');
    
    gulp.task('bundlejs', function () {
      return es.merge(bundles.map(function (obj) {
        return gulp.src(obj.src)
          .pipe(concat(obj.bundleName))
          .pipe(gulp.dest('js/_bundles'));
      }));
    });
    

    【讨论】:

    • 谢谢本,我会试试这个。
    • 我将此标记为答案,因为它强调了构建我提交的代码的最佳实践。我遇到的问题是错字,详情如下。
    【解决方案2】:

    此解决方案确实有效,我输入了错误的目录名称。呵呵。

    https://github.com/adamayres/gulp-filelog 帮我找到了问题。

    【讨论】:

      猜你喜欢
      • 2012-06-16
      • 2017-04-26
      • 1970-01-01
      • 1970-01-01
      • 2014-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-21
      相关资源
      最近更新 更多