0

I have webpack with HMR. While I run app from local IP, page connect with http://192.168.0.123:12345/__webpack_hmr. But when I run form my temp domain https://exampledomain.com/__webpack_hmr page is loading, but return 502. All page is wornkig on both adress, but /__webpack_hmr not.

I think the problem may be with url_revrite, however the rewrite is set from any string.

Any ideas, sugestions?

server/index.js

var express = require('express');
var app = express();
var server = require('http').Server(app);

var webpackConfig = require('./webpack.server.config')
const webpack = require("webpack");
const compiler = webpack(webpackConfig);

app.use(require('webpack-dev-middleware')(compiler));
app.use(require("webpack-hot-middleware")(compiler));
app.get('/', (req, res) => {
    res.send(...)
});

server.listen(12345, () => {
    console.log('App listening on http://localhost:12345');
});

webpack.server.config.js

const path = require('path');
const webpackNodeExternals = require('webpack-node-externals');
const crypto = require('crypto');

module.exports = {
    target: 'node',

    entry: [
        'webpack-hot-middleware',
        './server/index.js'
    ],
    output: {
        path: (process.env.NODE_ENV === 'production') ? path.join(__dirname, './upload_to_server') : path.join(__dirname, './build/server'),
        filename: 'app.js'
    },
    externals: [webpackNodeExternals()],

    module: {
        rules: [{
            test: /\.less$/,
            use: [
                {
                    loader: 'css-loader',
                    options: {
                        modules: {
                            exportOnlyLocals: true,
                            getLocalIdent: (context, localIdentName, localName, options) => {
                                const coded = Buffer.from(localName, 'utf8').toString('base64');
                                const result = crypto.createHash('md4').update(coded).digest('hex').substring(0, 8);
                                if (process.env.NODE_ENV === 'production') {
                                    return result;
                                } else {
                                    return localName + '_' + result;
                                }
                            },
                            localIdentName: '[local]',
                        },
                        sourceMap: process.env.NODE_ENV !== 'production'
                    }
                },
            ]
        }],
    },
    devServer: {
        devMiddleware: {
            writeToDisk: true
        },
        historyApiFallback: true,
        hot: true
    }
}

web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <clear />
                <rule name="url_revrite" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                    <action type="Rewrite" url="http://192.168.0.123:12345/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>
Peter
  • 499
  • 10
  • 30

0 Answers0