2016-04-04 5 views
0

以下のコードはrev-manifest.jsonファイルを正しくマージしません。 ハッシュファイルが正しく作成されて保存されていますが、いくつかのJSタスクをループして1つだけがマージされます。gulpfile.js:rev.manifest()いくつかのJSタスクをマージしない

私は既にたくさんのことを試しましたが、私はgulp-revといくつかのユーザーの縫い目で同様の問題があることを確認しました。いくつかはいくつかのマニフェストファイルを作成し、最後に実際のマージを進めています。私は遅くて醜いので、このソリューションを破棄したいと思います。

私がconcat(...)行にコメントすると、マニフェストファイルはすべてのJSタスクを登録します。

これはバグですか?ここに何か不足していますか?私はgulp-useref代わりにゴクゴク化連結を使用することをお勧めし

一気3.9.1 一気化連結2.6.0 一気-REV 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 = { 
 
\t task1: [ 
 
\t \t './path/file1.js' 
 
\t ], 
 
\t task2: [ 
 
\t \t './path/file2.js', 
 
    \t './path/file2.js' 
 
\t ] 
 
}; 
 

 

 
function jsTask(key) { 
 
\t gulp.task(key, function() { 
 
\t \t gulp.src(jsFiles[key]) 
 
\t \t \t .pipe(jshint()) 
 
\t \t \t .pipe(jshint.reporter('default')) 
 
\t \t \t .pipe(uglify()) 
 
\t \t \t // IT WORKS WHEN I COMMENT THIS LINE 
 
\t \t \t .pipe(concat(key + '.min.js')) 
 
\t \t \t .pipe(rev()) 
 
\t \t \t .pipe(gulp.dest('./public/js')) 
 
\t \t \t .pipe(rev.manifest({merge:true })) 
 
     \t .pipe(gulp.dest('.')); 
 
\t }); 
 
} 
 

 

 
gulp.task('less', function() { 
 
\t return gulp.src(['./path/less/*.less']) 
 
\t \t .pipe(less({errLogToConsole: true})) 
 
\t \t .pipe(minifycss()) 
 
\t \t .pipe(rev()) 
 
\t \t .pipe(gulp.dest('./path/public/css')) 
 
\t \t .pipe(rev.manifest({merge:true })) 
 
     .pipe(gulp.dest('.')); 
 
}); 
 

 

 
for (var key in jsFiles) { 
 
\t jsTask(key); 
 
} 
 

 

 
var defaultTasks = ['less']; 
 
for (var key in jsFiles) { 
 
\t defaultTasks.push(key); 
 
} 
 

 
gulp.task('default', defaultTasks);

答えて

0

あなたの設定が与えられると、keyはglobパスを参照するか、少なくとも私はそれを望みます。それ以外の場合は、1つのファイルを連結しようとしているか、がコンカット・プラグインをクラッシュさせるファイルがありません。 5月に重点を置く。

また、gulp-revを使用しているため、gulp-rev-replaceを使用すると、revedファイルへのインデックス参照が自動的に更新されます。

編集


時々rev.manifestは、私はバギーとして記述します方法で動作します。すべての可能性を排除するには、マニフェストのマージオプションを削除し、コンカットを実行してください。または、連結を実行し、マニフェストをすべて削除します。