Answer the question
In order to leave comments, you need to log in
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' />
<link rel="stylesheet" href="templates/my_template/build/bundle-f9990c8e88.min.css" type='text/css' media='all' />
"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 questionAsk a Question
731 491 924 answers to any question