下面的代码没有正确合并 rev-manifest.json 文件。我循环了几个 JS 任务,只有一个被合并,尽管哈希文件正在被正确创建和存储。
我已经尝试了很多东西,我检查了 gulp-rev 并且一些用户接缝有类似的问题。他们中的一些人正在创建几个清单文件,并在最后进行实际的合并。我想放弃这个解决方案,因为它又慢又丑。
如果我注释 concat(...) 行,清单文件将注册所有 JS 任务。
这是一个BUG还是我在这里遗漏了什么?
一饮而尽 3.9.1 一饮而尽 2.6.0 一饮而尽 7.0.0
var gulp = require('gulp');
var less = require('gulp-less');
var minifycss = require('gulp-minify-css');
var jshint = require('gulp-jshint');
var uglify = require('gulp-uglify');
var concat = require('gulp-concat');
var rev = require('gulp-rev');
var jsFiles = {
task1: [
'./path/file1.js'
],
task2: [
'./path/file2.js',
'./path/file2.js'
]
};
function jsTask(key) {
gulp.task(key, function() {
gulp.src(jsFiles[key])
.pipe(jshint())
.pipe(jshint.reporter('default'))
.pipe(uglify())
// IT WORKS WHEN I COMMENT THIS LINE
.pipe(concat(key + '.min.js'))
.pipe(rev())
.pipe(gulp.dest('./public/js'))
.pipe(rev.manifest({merge:true }))
.pipe(gulp.dest('.'));
});
}
gulp.task('less', function() {
return gulp.src(['./path/less/*.less'])
.pipe(less({errLogToConsole: true}))
.pipe(minifycss())
.pipe(rev())
.pipe(gulp.dest('./path/public/css'))
.pipe(rev.manifest({merge:true }))
.pipe(gulp.dest('.'));
});
for (var key in jsFiles) {
jsTask(key);
}
var defaultTasks = ['less'];
for (var key in jsFiles) {
defaultTasks.push(key);
}
gulp.task('default', defaultTasks);