Добрый день. Столкнулся с проблемой связанную с иклюдами в nunjucks.
Есть вот такая структура проекта:
- build
- index.html
- src
- blocks
- block1
- block1.njk
- block2
- block2.njk
- index.njk
Если инклюдить block1.njk или block2.njk в index.njk, то всё нормально, но если block2.njk в block1.njk и потом block1.njk в index.njk, то в build появляется папка blocks/block2/block2.html.
Помогите исключить из потока файлы с путём blocks/**/*.njk, чтобы они не выгружались в build.
таск:
// html.
const htmlhint = require('gulp-htmlhint');
const prettyHtml = require('gulp-pretty-html'); // Добавляет индентацию.
const nunjucks = require('gulp-nunjucks-render');
const nunjucksInheritance = require('gulp-nunjucks-inheritance');
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(distRev, revReplace({
manifest: src('manifest/manifest.json', { allowEmpty: true }),
}))))
// Выгрузка.
.pipe(dest(buildHtml))
// browserSync.
.pipe(gulpif(!dist, browserSync.stream())); // Если нет флага --dist.
}