আমি এটি অর্জনের জন্য একটি প্রক্সি স্থাপন করেছি:
আপনার নিয়মিত এক্সপ্রেস ওয়েবসার্ভার রয়েছে যা কোনও রুটে সূচক html পরিবেশন করে, যদি তা কোনও সম্পদ রুট ব্যতীত। যদি এটি কোনও সম্পদ হয়, অনুরোধটি ওয়েব-ডেভ-সার্ভারে প্রক্সি হয়ে যায়
আপনার প্রতিক্রিয়া হট এন্ট্রিপয়েন্টগুলি এখনও ওয়েবপ্যাক ডেভ সার্ভারে সরাসরি নির্দেশ করবে, তাই গরম পুনরায় লোডিং এখনও কাজ করে।
ধরে নেওয়া যাক আপনি 8081 তে ওয়েবপ্যাক-ডেভ-সার্ভার এবং আপনার প্রক্সিটি 8080 তে চালাচ্ছেন run আপনার সার্ভার.জেএস ফাইলটি দেখতে এইরকম হবে:
"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
বিকল্পটিতে একটি নিখুঁত url পাস করেছেন তাও নিশ্চিত করুন :
output: {
publicPath: "http://localhost:8081/assets/",
// ...
}