使用gulp更改文件

时间:2015-02-28 18:10:12

标签: javascript gulp

我有一个看起来像这样的gulp任务:

gulp.task('htmlServer', ['bower'], function(cb) {
  return gulp.src(config.build.htmlServerFiles, {base: './'})
    .pipe(gulp.dest(config.build.build));
});

它只是移动了一些文件。凉亭任务对这些文件进行了一些更改。

  gulp.task('bower', ['jadeServer'], function() {
    gulp.src(path.join(config.build.basepath, 'public/index.html'))
      .pipe(wiredep({
        directory: path.join(config.build.basepath, 'public/bower_components/'),
        bowerJson: require(path.join(config.build.basepath, './bower.json'))
      }))
      .pipe(gulp.dest(path.join(config.build.basepath, 'public')));
  });

不幸的是,htmlServer任务似乎移动了bower任务所做更改之前存在的文件版本。

我做错了什么?我可以不更改文件吗?

1 个答案:

答案 0 :(得分:1)

你的'bower'任务必须返回它的内置管道,否则它无法在完成时发出信号,因此任务并行运行。

请参阅https://github.com/gulpjs/gulp/blob/master/docs/recipes/running-tasks-in-series.md

中的第二个示例
var gulp = require('gulp');
var del = require('del'); // rm -rf

gulp.task('clean', function() {
    return del(['output']);
});

gulp.task('templates', ['clean'], function() {
    var stream = gulp.src(['src/templates/*.hbs'])
        // do some concatenation, minification, etc.
        .pipe(gulp.dest('output/templates/'));
    return stream; // return the stream as the completion hint

});