在多组文件上运行gulp任务

时间:2015-05-26 22:59:27

标签: node.js gulp

我有一个gulp任务,我想在多组文件上运行。我的问题与描述here非常相似,只不过我在一个额外的配置中定义了我的文件集。

到目前为止,我提出的内容如下所示:

config.json

{
  "files": {
    "mainScript": [
      "mainFileA.js",
      "mainFileB.js"
    ],
    "extraAdminScript": [
      "extraFileA.js",
      "extraFileB.js"
    ]
  }
}

gulpfile.js

var config = require ('./config.json');
...
gulp.task('scripts', function() {
  var features = [],
      dest = (argv.production ? config.basePath.compile : config.basePath.build) + '/scripts/';

  for(var feature in config.files) {
    if(config.files.hasOwnProperty(feature)) {
      features.push(gulp.src(config.files[feature])
        .pipe(plumper({
          errorHandler: onError
        }))
        .pipe(jshint(config.jshintOptions))
        .pipe(jshint.reporter('jshint-stylish'))
        .pipe(sourcemaps.init())
          .pipe(concat(feature + '.js'))
          .pipe(gulpif(argv.production, uglify()))
        .pipe(sourcemaps.write('.'))
        .pipe(gulp.dest(dest))
      );
    }
  }

  return mergeStream(features);
});

我的问题是这似乎不起作用。流不是组合或至少没有真正发生。不久之前,其他人遇到了类似的问题,请参阅here,但即使应该修复它也不适合我。

顺便说一句,我也测试了以这种方式合并流:

return es.merge(features)
return es.merge.apply(null, features)

如果我只是在一组文件上运行任务就可以了。

动机

我想要这样做的原因是,在某些时候,当所有文件的数量太大时,将所有脚本连接并缩小为一个最终文件是没有意义的。此外,有时不需要一次加载所有内容。例如,每个访问者都不需要加载与管理界面相关的所有脚本。

0 个答案:

没有答案