Gulp rev收集器工作不正常
我不明白这个代码出了什么问题。当我第一次运行它时,rev_收集器不工作。我的意思是:“rev”和“clean”工作得很好,但是索引http中的css文件名并没有改变“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'),
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
然后我的问题解决了
我希望它能帮助你