मैंने इसे प्राप्त करने के लिए एक प्रॉक्सी स्थापित किया है:
आपके पास एक नियमित एक्सप्रेस वेबसर्वर है जो किसी भी मार्ग पर index.html का काम करता है, सिवाय इसके कि कोई संपत्ति मार्ग हो। यदि यह एक परिसंपत्ति है, तो अनुरोध वेब-देव-सर्वर से जुड़ा हुआ है
आपकी प्रतिक्रिया गर्म प्रविष्टि अभी भी सीधे वेबपैक देव सर्वर पर इंगित करेगी, इसलिए हॉट रीलोडिंग अभी भी काम करता है।
मान लें कि आप 8081 पर webpack-dev-server चलाते हैं और 8080 पर आपका प्रॉक्सी। आपका server.js फ़ाइल इस तरह दिखेगा:
"use strict";
var webpack = require('webpack');
var WebpackDevServer = require('webpack-dev-server');
var config = require('./make-webpack-config')('dev');
var express = require('express');
var proxy = require('proxy-middleware');
var url = require('url');
## --------your proxy----------------------
var app = express();
## proxy the request for static assets
app.use('/assets', proxy(url.parse('http://localhost:8081/assets')));
app.get('/*', function(req, res) {
res.sendFile(__dirname + '/index.html');
});
# -----your-webpack-dev-server------------------
var server = new WebpackDevServer(webpack(config), {
contentBase: __dirname,
hot: true,
quiet: false,
noInfo: false,
publicPath: "/assets/",
stats: { colors: true }
});
## run the two servers
server.listen(8081, "localhost", function() {});
app.listen(8080);
अब अपनी प्रविष्टि को वेबपैक कॉन्फिगर में इस तरह बनाएँ:
entry: [
'./src/main.js',
'webpack/hot/dev-server',
'webpack-dev-server/client?http://localhost:8081'
]
हॉट्रेलोड के लिए 8081 पर सीधे कॉल पर ध्यान दें
यह भी सुनिश्चित करें कि आप output.publicPath
विकल्प के लिए एक पूर्ण यूआरएल पास करते हैं :
output: {
publicPath: "http://localhost:8081/assets/",
// ...
}