我有一个看起来像这样的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
任务所做更改之前存在的文件版本。
我做错了什么?我可以不更改文件吗?
答案 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
});