Я использую Browser Syn c с Webpack и Express для разработки простого сайта с использованием шаблонов E JS. Все работает нормально, за исключением того, что syn c браузера не отображает недавно обновленные партиалы E JS при перезагрузке браузера.
Тем не менее, он на самом деле замечает, что в частичном файле есть изменение, и когда я сохраняю его, он перезагружает окно браузера.
Я пытался использовать несколько путей, которые варьируются от **/*.ejs
для непосредственной установки папок с использованием массива, как показано ниже:
new BrowserSyncPlugin({
files: ['src/views/pages/index.ejs', 'src/views/pages/partials/header.ejs'],
proxy: `https://localhost:${process.env.PORT}`
}),
У меня такое ощущение, что это может быть какой-то конфликта либо с Browser Syn c, Html Webpack Plugin, либо с E JS Webpack Loader. Соответствующие строки конфигурации приведены ниже:
new BrowserSyncPlugin({
files: ['src/views/pages/index.ejs', 'src/views/pages/partials/header.ejs'],
proxy: `https://localhost:${process.env.PORT}`
}),
new HtmlWebpackPlugin({
template: 'ejs-webpack-loader!src/views/pages/index.ejs',
filename: 'index.html',
domain: process.env.DOMAIN
}),
И, чтобы дать некоторый контекст, файл header.e js включен следующим образом:
<%- include partials/header.ejs %>
Я предполагаю, что это что-то делать с одним из загрузчиков, так как браузер syn c фактически замечает изменения и перезагружает страницу. Загрузчик просто не рендерит включает. Если я внесу прямое изменение в index.ejs
, то оно на самом деле будет перерисовано.
Заранее спасибо.
РЕДАКТИРОВАТЬ:
Мой Express сервер конфигурации выглядит следующим образом:
require('dotenv').config({path: './.env'});
const express = require('express');
const app = express();
const WebpackDevMiddleware = require('webpack-dev-middleware');
const https = require('https');
const fs = require('fs');
const config = require('../webpack.dev');
const helmet = require('helmet');
const webpack = require('webpack');
const compiler = webpack(config);
const {
SSL_CERT,
SSL_KEY,
SSL_PW,
PORT
} = process.env;
const httpsOptions = {
key: fs.readFileSync(SSL_KEY),
cert: fs.readFileSync(SSL_CERT),
passphrase: SSL_PW
};
const secureServer = https.createServer(httpsOptions, app);
app.use(helmet());
app.use(WebpackDevMiddleware(compiler, {
publicPath: config.output.publicPath,
reload: true
}));
const listener = secureServer.listen(PORT, () => console.log(`Connected on ${listener.address().port}`));
Еще одно примечание, если я сохраню index.e js, он будет отображать изменения, внесенные в детей.