SeoHueo
@SeoHueo
Верстальщик, сео-специалист, предприниматель

Перенос компиляции Pug в Gulp на уровень вверх, относительно конечной папки — возможно?

Всем хорошего дня!
Интересует мнение опытных в Gulp умов - возможен ли перенос компиляции html из Pug в папку уровнем выше, относительно .pug файла. При этом название папки меняется.
Ситуация, для которой понадобилось:
Делаю сайты по городам Московской области, исключительно на Pug. Всего 16 сайтов на одинаковой верстке, меняются только часть контента, забитые в переменные.
Таким образом для каждого города своя папка, в которой должен появиться html. В этой же папке лежит папка pug, в которой лежат конечные файлы для компиляции.
Т.о. структура всей затеи:
C/WebServer/domains/beton-Iventeevka.ru/pug/
C/WebServer/domains/beton-Reutov.ru/pug/
C/WebServer/domains/#{Name-Sity.ru}/pug/
Таких 16 штук.
#{Name-Sity.ru} - индивидуальная для города папка
/pug/ - папка конечных файлов.
Цель - избежать создания сборки Галп для каждой отдельной папки, а компилировать все города 1 командой.
Т.е. на уровне папки /domains/ создается сборка Галп, в ней прописывается универсальный путь через /**/ или еще как-либо и в dest прописывается что-то относительно конечного положения файла + подъем на уровень вверх.
Я пробовал в подобные потуги:
gulp.task('pug', function(){
return gulp.src('../domains/**/gulp/pug/*.pug', {base: './'})
.pipe(pug({
pretty: true
}))
.pipe(gulp.dest('../'))
});
Пробовал возвращать через функцию return file.base - получалось всё сложить в ту же папку ,но не получалось на уровень вверх.
Если попытаться резюмировать, то суть проблемы именно в dest - как поднять на уровень/произвольное количество уровней, относительно конечного файла
  • Вопрос задан
  • 530 просмотров
Решения вопроса 1
BBoyJuss
@BBoyJuss
WordPress, интерфейсы и все вытекающие
Вот такой рецепт получился (если я правильно понял вопрос)
const path   = require('path');
const gulp   = require('gulp');
const pug    = require('gulp-pug');

const cities = [
    {
        cityName : 'city1',
    },
    {
        cityName : 'city2',
    }
];

gulp.task('views', function(done) {

    cities.forEach(function(city, index, cities) {

        gulp.src('template/city.pug')
            .pipe(pug({
                data : city
            }))
            .pipe(gulp.dest(path.join('..', '..', 'domains', city.cityName)));
    });

    done();
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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