Возможно не совсем понял твой вопрос, как то хитро-мудро ты его задал, но вот у примеру я все на builds отправляю в виде 2 файлов: main.js и vendor.js, в принципе то ж самое и со стилями. Что касательно таска, то вот пример моего какого-то (библиотеки не принципиально):
// ~ Compile JS ~
var jsFilter = gulpFilter('**/*.js');
// Concat vendor JS (uglify for production)
gulp.task('js:vendor', function() {
    gulp.src(mainBowerFiles({
          "overrides": {
              "jquery": {
                  "main": "./dist/jquery.min.js"
              },
              "bootstrap": {
                  "main": "./dist/js/bootstrap.min.js"
              },
              "magnific-popup": {
                  "main": "./dist/jquery.magnific-popup.min.js"
              }
          }
  }))
      .pipe(jsFilter)
      .pipe(concat('vendor.js'))
      .pipe(gulpIf(env !== 'dev', uglify()))
      .pipe(gulp.dest(outputDir + 'js'))
});
// Concat own JS (uglify for production)
gulp.task('js', function() {
    gulp.src(src.js)
        .pipe(jsHint())
        .pipe(jsHint.reporter('default'))
        .pipe(concat('script.js'))
        .pipe(gulpIf(env !== 'dev', uglify()))
        .pipe(gulp.dest(outputDir + 'js'))
        .pipe(connect.reload());
});
настройки осуществляю в зависимости от production или development версии