Гугл ответа не дал, но сказал что можно :)
После гугления на гитхабе нашел
решение, которое не очень работало, но подход был правильный.
Кроме этого у меня была CMS Modx Revo c тегом base, который все портил. Первым делом надо убрать его, в настройках ЦМС изменить схему генерации урлов на full
ну и допилить webpack.config из примера на гитхаб
const path = require('path');
const log = require('debug')('webpack.config');
const webpack = require('webpack');
module.exports = (env) => {
log('env', env);
return {
entry: {
main: [
'./client/main.js',
'./client/main.css'
]
},
output: {
publicPath: env.public,
filename: 'scripts/[name].js',
path: `${path.resolve('./dist')}/static/theme`
},
devServer: {
hot: true,
contentBase: './dist',
port: env.port,
host: "0.0.0.0",
proxy: {
"/": {
secure: false,
changeOrigin: true,
autoRewrite: true,
headers: {
'X-ProxiedBy-Webpack': true,
},
target: 'http://mysite.by',
bypass (request, response, options) {
const asset = request.path;
console.log(asset);
// yesno if the requested path is one of the following.
const byPass = [
env.public,
'/webpack-dev-middleware/',
'/webpack-dev-server/',
'/sockjs-node/',
'/socket.io/',
].find(pattern => asset.indexOf(pattern) >= 0 ) !== undefined;
return byPass && request.path;
}
},
}
},
module: {
rules: [
{ test: /\.css$/,
use: [
{loader: 'style-loader'},
{loader: 'css-loader'}
]
}
]
},
plugins: [
new webpack.HotModuleReplacementPlugin(),
]
}
};
И все заработало даже HMR :)
Так что browsersync и gulp по прежнему отдыхают в архивной папке :)