const htmlInclude = () => {
return src([`${srcFolder}/*.html`, `${srcFolder}/project/*.html`])
.pipe(fileInclude({
prefix: '@',
basepath: '@file'
}))
.pipe(typograf({
locale: ['ru', 'en-US']
}))
.pipe(dest(buildFolder))
.pipe(browserSync.stream());
}
function html() {
return src('src/**/*.{html,njk}', { base: 'src', since: lastRun('html') })
// Nunjucks
.pipe(nunjucksInheritance({ base: 'src' })) // Ищем изменения в зависимостях
.pipe(nunjucks({ path: 'src' })) // Компилируем в HTML
// Добавляет индентацию для заинклюженных блоков.
.pipe(prettyHtml({ indent_size: 2 }))
// HTML-валидатор.
.pipe(htmlhint('.htmlhintrc'))
.pipe(htmlhint.reporter())
// Манифест.
// Если флаг --dist без --norev.
.pipe(gulpif(dist, gulpif(!norev, revReplace({
manifest: src('manifest/manifest.json', { allowEmpty: true }),
}))))
// Выгрузка.
.pipe(dest(buildHtml))
// browserSync.
.pipe(gulpif(!dist, browserSync.stream())); // Если нет флага --dist.
}
gulp.task("imgsWebp", function() {
return gulp.src("src/blocks/**/*.{jpg,jpeg,png,gif,ico}")
// Конвертирует изображение в webp и сжимает его.
.pipe(webp({
quality: 100
}))
// Выгрузка.
.pipe(gulp.dest(buildImgs))
// Browsersync.
.pipe(gulpif(!dist, browserSync.stream())); // Если нет флага --dist.
});
// gulp@4.0.0-alpha.2
var gulp = require('gulp');
var del = require('del');
var path = require('path');
var flatten = require('gulp-flatten');
gulp.task('imgs', function() {
return gulp.src('src/blocks/**/*.{jpg,jpeg,png,gif,svg}')
.pipe(flatten()) // Удаляет относительный путь до файла.
.pipe(gulp.dest('public/imgs'))
.pipe(browserSync.stream());
});
gulp.task('watch', function() {
gulp.watch('src/blocks/**/*.{jpg,jpeg,png,gif,svg}', gulp.series('imgs')).on('unlink', function (filepath) {
var filePathFromSrc = path.relative(path.resolve('src/blocks/'), filepath);
// Concatenating the 'build' absolute path used by gulp.dest in the scripts task
var destFilePath = path.resolve('public/imgs', filePathFromSrc);
del.sync(destFilePath);
});
});