Я установил и запустил простой сервер express. С помощью веб-пакета BrowserSyncPlugin я хочу прокси этот URL (localhost: 3000). Это все работает, как и ожидалось, однако он не отслеживает изменения в каталоге views . Я объявил файлы в настройках, но это не влияет на результат. Я не вижу, чего мне не хватает.
Использование:
- Express -рулей
- Webpack
- Руль
Настройка проекта
.
├── server.js
└── views
├── home.handlebars
└── layouts
└── main.handlebars
сервер. js
const express = require('express');
const exphbs = require('express-handlebars');
const server = express();
server.engine('handlebars', exphbs());
server.set('view engine', 'handlebars');
server.get('/', function(req, res) {
res.render('home');
});
server.listen(3000);
Webpack.config. js
const path = require('path');
const fs = require('fs');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const BrowserSyncPlugin = require('browser-sync-webpack-plugin');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const dir = 'src/emails/';
let emails = [];
let email;
let files = fs.readdirSync(dir);
files.forEach(file => {
email = new HtmlWebpackPlugin({
filename: `${path.basename(file, '.hbs')}.html`,
template: `src/emails/${path.basename(file, '.hbs')}.hbs`
});
emails.push(email)
});
module.exports = () => {
return {
watch: true,
entry: {
app: './src/index.js'
},
output: {
path: path.resolve(__dirname, './dist'),
filename: 'index_bundle.js'
},
module: {
rules: [
{
test: /\.handlebars$/,
loader: "handlebars-loader"
},
]
},
plugins: [
new CleanWebpackPlugin(),
new BrowserSyncPlugin({
files: [
'./src/views/**/*.handlebars',
],
proxy: 'http://localhost:3000/'
}),
...emails
]
}
};