2015-08-26 2 views
0

Я начал использовать Gulp, и я хочу создать задачу, которая переименовывает файлы (js, css) с хешем, а затем вводит их обратно в html.Gulp-rev заменяет файлы сгенерированным хешем

У меня фактически есть две функции, которые делают то, что я хочу, но я не могу понять, как удалить старый файл и сохранить только новые хэшированные и js-файлы.

Некоторые могут дать мне подсказку? Это мой код прямо сейчас:

набла: переменная «конфигурации» имеет расположение папки

gulp.task('prod:rev',['prod:revision'],function() { 
    var manifest = gulp.src(config.prod.manifest); 
    return gulp 
    .src(config.prod.header) 
    .pipe(plugin.revReplace({manifest: manifest})) 
    .pipe(gulp.dest('../')); 
}); 

gulp.task('prod:revision',function(){ 
    var revJs = gulp 
    .src(config.scripts.build+'*.js') 
    .pipe(plugin.rev()) 
    .pipe(gulp.dest(config.scripts.build)) 
    .pipe(plugin.rev.manifest({merge: true})) 
    .pipe(gulp.dest(config.prod.path)); 

    var revCss = gulp 
    .src(config.styles.build+'*.css') 
    .pipe(plugin.rev()) 
    .pipe(gulp.dest(config.styles.build)) 
    .pipe(plugin.rev.manifest({merge: true})) 
    .pipe(gulp.dest(config.prod.path)); 

    return merge(revJs,revCss); 

ответ

0

я в настоящее время открытый question на аналогичный вопрос - я получаю файлы Revved правильно, но не вводить их в html с gulp-useref (вы можете проверить метод предполагаемой работы в моем вопросе относительно useref). Я подозреваю, что некоторая нечестную игру с каталогами, которые я использую, но сейчас я решил использовать другой кэш-перебор схему:

var cb = Math.random(); 

.... 
.pipe($.replace('dist/css/lib.css', 'dist/css/lib.css?cb=' + cb)) 
.... 

Это не может быть ответом, который вы хотите, но это может быть ответ вам необходимость. :)

0

В соответствии с gulp-revreadme.md похоже, что вы можете использовать gulp-rev-delete-original для удаления неподготовленных оригиналов.