Кажется, веб-пакет не перезагружает конфигурацию при изменении файлов точки входа (новые / удалить / переименовать .nkj файлы). Мне нужно перезапустить веб-пакет, чтобы можно было сгенерировать файл html из nunjucks.
Если я переименую, добавлю новый или удалим один из файлов .njk, я получу сообщение об ошибке «Ошибка: дочерняя компиляция не удалась».
webpack.mix. js
const paths = require('./paths'),
mix = require('laravel-mix'),
RemoveWebpackPlugin = require('remove-webpack-plugin'),
nunjucksConfig = require('./nunjucks.config'),
path = require('path'),
WebpackOnBuildPlugin = require('on-build-webpack');
require('laravel-mix-copy-watched');
mix
.browserSync({
server: {
baseDir: paths.base.dir
}
});
mix.webpackConfig({
module: {
rules: [
{
test: /\.njk$/,
use: [
{
loader: 'simple-nunjucks-loader',
options: {
searchPaths: path.join(__dirname, 'src', 'templates'),
}
}
]
}
]
},
plugins: [
...nunjucksConfig.generatePages(path.resolve(__dirname, paths.src.templates))
]
})
nunjucks.config. js
const mix = require('laravel-mix'),
path = require('path'),
fs = require('fs'),
paths = require('./paths'),
HTMLWebpackPlugin = require('html-webpack-plugin');
const pages = {
generatePages: function generatePages(pagesPath) {
return walkDir(pagesPath).map(
name =>
new HTMLWebpackPlugin({
template: `${pagesPath}/${name[1]}${name[0]}.njk`,
filename: paths.pages.base + `/${name[1]}${name[0]}.html`,
inject: false
})
);
}
};
module.exports = pages;