Gulp - 如何附加到dest而不是替换

时间:2015-08-07 12:15:07

标签: javascript angularjs node.js gruntjs gulp

我有一个代码:

gulp.task('concat-uglify-js', function() {
  return gulp.src(src + 'js/*.js')
    .pipe(concat('angular-filemanager.min.js'))
    .pipe(uglify())
    .pipe(gulp.dest(dst))
});

gulp.task('cache-templates', function () {
  return gulp.src(tplPath + '/*.html')
    .pipe(templateCache('cached-templates.js', {
      module: 'FileManagerApp',
      base: function(file) {
        return tplPath + '/' + path.basename(file.history);
      }
    }))
    .pipe(uglify())
    .pipe(gulp.dest(dst));
});

我想将这两个任务输出合并到一个文件中......“angular-filemanager.min.js”

可以选择执行

之类的操作
.pipe(gulp.dest(dst, {mode: "APPEND_INSTEAD_OF_REPLACE"}));

谢谢!

3 个答案:

答案 0 :(得分:2)

我还没有对此进行过测试,但尝试使用gulp-filter

var gulpFilter = require('gulp-filter');

gulp.task('concat-uglify-js', function() {

  var filter = {
    html: gulpFilter('*.html'),
    js  : gulpFilter('*.js')
  };

  return gulp
    .src([src + 'js/*.js', tplPath + '/*.html'])
    .pipe(filter.html)
    .pipe(templateCache('cached-templates.js', {
      module: 'FileManagerApp',
      base: function(file) {

        return tplPath + '/' + path.basename(file.history);
      }
    }))
    .pipe(filter.html.restore)
    .pipe(filter.js)
    .pipe(concat('angular-filemanager.min.js'))
    .pipe(uglify())
    .pipe(gulp.dest(dst));
});

答案 1 :(得分:1)

现在可能没有帮助,因为它还不是released,但4.0中的gulp.destadd an overwrite option默认为true,但可以设置为false以便追加:

Formatter g = null; try { g = new Formatter("data.out"); } catch (FileNotFoundException e) { e.printStackTrace(); } int x = 3; g.format("abc" + Integer.toString(x)); g.close();

答案 2 :(得分:0)

您可以将templateCache的调用放入函数中,然后使用add-stream将该函数的输出与concat-uglify-js任务中的js文件流相结合。< / p>

我不确定您使用的是哪种角度模板缓存插件,但我更详细地写了这种情况here

var addStream = require('add-stream');

gulp.task('concat-uglify-js', function() {
  return gulp.src(src + 'js/*.js')
    // add js file containing cached templates to stream of js files
    .pipe(addStream.obj(cacheTemplates()))
    .pipe(concat('angular-filemanager.min.js'))
    .pipe(uglify())
    .pipe(gulp.dest(dst))
});

// is this task still needed?
gulp.task('cache-templates', function () {
  return cacheTemplates()
    .pipe(uglify())
    .pipe(gulp.dest(dst));
});

// this returns a stream of one js file
function cacheTemplates() {
  return gulp.src(tplPath + '/*.html')
    // (you may want to minify html here)
    .pipe(templateCache('cached-templates.js', {
      module: 'FileManagerApp',
      base: function(file) {
        return tplPath + '/' + path.basename(file.history);
      }
    }));
}