johndeff
@johndeff

Как изменить имя файла: bundle.min.css -> bundle-f9990c8e88.min.css с помощью GULP в index.php?

Все работает, если у меня в файле index.php подключение CSS выглядит так:
<link rel="stylesheet" href="templates/my_template/build/bundle.min.css" type='text/css' media='all' />

После того как отработает GULP, подключение файла выглядит так:
<link rel="stylesheet" href="templates/my_template/build/bundle-f9990c8e88.min.css" type='text/css' media='all' />

Получается, всё верно! Однако, если второй раз запускать алгоритм, то всё стопорится на task "rev2-collector"
он просто не хочет менять старое имя "bundle-f9990c8e88.min.css" на новое!
Хотя ошибок не выдаёт

изучил всё что только можно, не могу найти решения, прошу помощи!

ниже мой код gulpfile.js

"use strict";
var gulp = require('gulp');
var debug       = require('gulp-debug'); // Вывод информации о действии в log терминала
var del       = require('del'); // удаление // https://github.com/sindresorhus/del#optionsforce
var rev          = require('gulp-rev'); // изменение ревизии файла // https://github.com/sindresorhus/gulp-rev
var revCollector = require('gulp-rev-collector'); // Подключение файлов ревизии через rev-manifest.json // https://github.com/shonny-ua/gulp-rev-collector
var revOutdated  = require('gulp-rev-outdated'); // Удаление ранее созданных файлов ревизий
var gutil        = require('gulp-util'); // Модуль плагина gulp-rev-outdated
var rimraf       = require('rimraf'); // Модуль плагина gulp-rev-outdated
var through      = require('through2'); // Модуль плагина gulp-rev-outdated
// Делаем ревизии файлов
gulp.task('rev1', function() {
    gulp.src([output.dir+'/bundle.min.css', output.dir+'/min.lib.js'])//, {base: 'assets'})
        //.pipe(gulp.dest( output.dir ))  // copy original assets to build dir
        .pipe(rev()).pipe(debug({title:'rev - Создаём файлы ревизий'}))
        .pipe(gulp.dest( output.dir )).pipe(debug({title:'rev - Сохраняем файлы ревизий'}))  // write rev'd assets to build dir
        .pipe(rev.manifest()).pipe(debug({title:'manifest - Записываем файлы ревизий в манифест'}))
        .pipe(gulp.dest('ABC_APP')).pipe(debug({title:'manifest - Сохраняем файл манифеста'}));// write manifest to build dir
    return;
});
// Вставляем имена новых ревизий в index.php
gulp.task('rev2-collector', function () {
    return gulp.src(['ABC_APP/rev-manifest.json', 'templates/my_template/index.php'])
        .pipe(revCollector({
            replaceReved:true
        })).pipe(debug({title:'revCollector - Вставляем имена новых ревизий в index.php'}))
        .pipe(gulp.dest( 'templates/'+template ));
});
// Удаляем файлы сборки
gulp.task('rev3-del-build', function() {
    return del([output.dir+'/bundle.min.css', output.dir+'/min.lib.js']);
});
// Очищаем ранее созданные файлы ревизий
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('Очищаем ранее созданные файлы ревизий', err));
            }
            this.push(file);
            cb();
        }.bind(this));
    });
}
gulp.task('rev4-clean', function() {
    gulp.src( ['templates/'+template+'/build/*.*'], {read: false})
        .pipe(revOutdated(1)).pipe(debug({title:'revOutdated - Оставляем только последний файл ревизии'})) // leave 1 latest asset file for every file name prefix.
        .pipe(cleaner());
    return;
});
  • Вопрос задан
  • 406 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы