Добрый день!
Вот часть моего gulpfile.js
gulp.task('clean', function(){
del(['static/build/*.min.*'])
});
gulp.task('build-less', function(){
gulp.src(['static/legacy/**/*.+(css|less)', 'static/less/**/*.+(css|less)'])
.pipe(postcss([ nested, short, autoprefixer(), cssnano(), cssnext, cssvariables() ]))
.pipe(concatCSS('main.css'))
.pipe(rename('styles.min.css'))
.pipe(rev())
.pipe(gulp.dest('static/build'))
.pipe(rev.manifest({
base: './',
merge: true // merge with the existing manifest (if one exists)
}))
.pipe(gulp.dest('./'));
});
gulp.task('build-legacy-js', function(){
gulp.src(['static/legacy/**/*.js'])
.pipe(concat('all.js'))
.pipe(rename('bundle.min.js'))
.pipe(rev())
.pipe(gulp.dest('static/build'))
.pipe(rev.manifest({
base: './',
merge: true // merge with the existing manifest (if one exists)
}))
.pipe(gulp.dest('./'));
});
gulp.task('build-scripts-js', function(){
gulp.src(['static/js/**/*.js'])
.pipe(concat('all.js'))
.pipe(rename('scripts.min.js'))
.pipe(rev())
.pipe(gulp.dest('static/build'))
.pipe(rev.manifest({
base: './',
merge: true // merge with the existing manifest (if one exists)
}))
.pipe(gulp.dest('./'));
});
gulp.task('default', ['clean', 'build-less', 'build-legacy-js', 'build-scripts-js']);
gulp.task('watch', function(){
gulp.watch('static/less/*.+(css|less)', ['build-less']);
gulp.watch('static/js/**/*.js', ['build-scripts-js']);
gulp.watch('static/legacy/**/*.js', ['build-legacy-js']);
});
Проблема в том, что gulp-rev не всегда корректно создает rev-manifest.json, и я не понимаю в чем проблема.
К примеру, внутри rev-manifest.json запросто может быть только
{
"bundle.min.js": "bundle-af26fd17a0.min.js",
"scripts.min.js": "scripts-87dd6e8894.min.js"
}
А где styles.min.css?
В build папке он существует, но почему не попал в манифест?
Стоит замеить, что иного (после 2, 3) запусков gulp, rev-manifest.json получается корректным, но это же не дело - 20 раз запускать gulp!
Помогите пожалуйста.