J
J
John2016-09-18 20:17:21
Web development
John, 2016-09-18 20:17:21

How to change filename: bundle.min.css -> bundle-f9990c8e88.min.css using GULP in index.php?

Everything works if my CSS connection in my index.php file looks like this:

<link rel="stylesheet" href="templates/my_template/build/bundle.min.css" type='text/css' media='all' />

After GULP has completed, the file connection looks like this:
<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;
});

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question