Мне нужна помощь с nunjucks.Я пытаюсь динамически создавать html-страницы в папку pages from src/templates
.Я использую Browsersync, когда я изменяю что-то в src/templates/pages
, он (заново) генерирует html-файлы, но когда я что-то изменяю в src/templates/layout
, ничего не происходит.
Структура проекта:
- webpack.config.js
- nunjuckspages.js
- pages
- src
- templates
- pages
- index.njk
- news.njk
- layout
- layout.njk
- header.njk
- footer.njk
В моей конфигурации веб-пакета:
plugins: [
...nunjuckspages.generatePages(path.resolve(__dirname, 'src/templates/pages'))
]
И это целые nunjuckpages:
const path = require('path');
const fs = require('fs');
const NunjucksWebpackPlugin = require('nunjucks-webpack-plugin');
const directories = []
function walkDir(dir, parent = '') {
var files = fs.readdirSync(dir);
for(var x in files){
var next = path.join(dir,files[x]);
if(fs.lstatSync(next).isDirectory()==true){
walkDir(next, parent+'/'+files[x]);
} else {
directories.push([path.parse(files[x]).name, (parent+'/').slice(1)]);
}
}
return directories
}
const pages = {
generatePages: function generatePages(pagesPath) {
return walkDir(pagesPath).map(
name =>
new NunjucksWebpackPlugin({
templates: [{
from: `${pagesPath}/${name[1]}${name[0]}.njk`,
to: `pages/${name[1]}${name[0]}.html`
}]
}),
);
}
};
module.exports = pages;
Я пытался вызвать nunjuckspages.generatePages с другим путем, например, ...nunjuckspages.generatePages(path.resolve(__dirname, 'src/templates'))
, но вв этом случае файлы макетов тоже были сгенерированы в html-файл, но не должны.
Любой совет?