Gulp rev收集器工作不正常

Gulp rev收集器工作不正常,gulp,Gulp,我不明白这个代码出了什么问题。当我第一次运行它时,rev_收集器不工作。我的意思是:“rev”和“clean”工作得很好,但是索引http中的css文件名并没有改变“rev_收集器”。 但当我再次启动它时,它工作正常 var gulp = require('gulp'), less = require('gulp-less'), rev_append = require('gulp-rev-append'), rev = require('gulp-rev'),

我不明白这个代码出了什么问题。当我第一次运行它时,rev_收集器不工作。我的意思是:“rev”和“clean”工作得很好,但是索引http中的css文件名并没有改变“rev_收集器”。 但当我再次启动它时,它工作正常

var gulp = require('gulp'),
    less = require('gulp-less'),
    rev_append = require('gulp-rev-append'),
    rev = require('gulp-rev'),
    revCollector = require('gulp-rev-collector'),
    gutil = require('gulp-util'),
    rimraf = require('rimraf'),
    revOutdated = require('gulp-rev-outdated'),
    path = require('path'),
    through = require('through2');

gulp.task('rev', function(){
    gulp.src('./src/less/*.less')
        .pipe(less())
        .pipe(rev())
        .pipe(gulp.dest('./www/css/'))
        .pipe(rev.manifest())
        .pipe(gulp.dest('./src/manifest/'));
});

gulp.task('rev_collector', ['rev'], function(){
    return gulp.src(['./src/manifest/**/*.json', './www/index.html'])
        .pipe(revCollector({
            replaceReved: true
        }))
        .pipe(gulp.dest('./www/'));
});

function cleaner() {
    return through.obj(function(file, enc, cb){
        rimraf( path.resolve( (file.cwd || process.cwd()), file.path), function (err) {
            if (err) {
                this.emit('error', new gutil.PluginError('Cleanup old files', err));
            }
            this.push(file);
            cb();
        }.bind(this));
    });
}

gulp.task('clean', ['rev_collector'], function() {
    gulp.src( ['./www/**/*.*'], {read: false})
        .pipe( revOutdated(1) ) // leave 2 latest asset file for every file name prefix.
        .pipe( cleaner() );

    return;
});

gulp.task('rev_all', ['rev', 'rev_collector', 'clean']);

今天,我遇到了同样的问题。 在我没有从这个页面得到任何信息后,我搜索了很多。 我的问题来自文件加载的顺序

所以我使用了一个新插件:

var runSequence = require('run-sequence');
然后,我重写加载代码:

gulp.task('default',['build']);


gulp.task('build', function (done) {
    runSequence(
         ['clean'],
         ['images'],
         ['statcstyles', 'staticjs'],
         ['scripts'],
         ['styles'],
         ['html'],
    done);
});
代码确保在创建清单后始终加载revCollector

然后我的问题解决了

我希望它能帮助你