[英]__webpack_hmr goes to the wrong port and fails
我正在嘗試熱重新加載以使用我的設置。 目前,它的工作原理如下 -
server.js
// this is the main server, which connects to db, serves react components, etc
const app = express();
app.get('/:params?*', (req, res) => {
res.status(200).send(`
<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
hi
<script src="http://localhost:3000/build/client.js"></script>
</body>
</html>
`);
});
...
app.listen(5000);
gulpfile.babel.js
const CLIENT_DEV_CONFIG = {
entry: [
CLIENT_ENTRY,
'webpack-hot-middleware/client',
'eventsource-polyfill',
],
plugins: [
new webpack.HotModuleReplacementPlugin(),
],
output: {
...CLIENT_OUTPUT,
publicPath: 'http://localhost:3000/build/',
},
module: {
loaders: [BABEL_LOADER]
},
}
gulp.task('client-watch', done => {
console.log(CLIENT_DEV_CONFIG.output.publicPath);
const opts = {
hot: true,
publicPath: CLIENT_DEV_CONFIG.output.publicPath,
headers: {'Access-Control-Allow-Origin': '*'},
};
const app = new express();
const compiler = webpack(CLIENT_DEV_CONFIG);
app.use(webpackDevMiddleware(compiler, opts));
app.use(webpackHotMiddleWare(compiler));
app.listen(3000, (err) => {
console.log(err || '[webpack-hot-devserver] running on 3000');
done();
});
});
現在,
localhost:5000
。 有用 localhost:3000/build/client.js
,它也可以 但是,如果我更新的東西我沒有得到實時更新,我需要刷新...... :(
查看網絡選項卡,我看到對http://localhost:5000/__webpack_hmr
請求失敗,我認為這可能是一個問題。
http://localhost:5000/__webpack_hmr
實際上應該是http://localhost:3000/__webpack_hmr
但是,我不知道如何糾正這個問題
您可以在entry
數組的行中的webpack配置中指定URL,如下所示:
const CLIENT_DEV_CONFIG = {
entry: [
CLIENT_ENTRY,
`webpack-hot-middleware/client?path=${HOT_SERVER_URL}/__webpack_hmr`,
'eventsource-polyfill',
],
plugins: [
new webpack.HotModuleReplacementPlugin(),
],
output: {
...CLIENT_OUTPUT,
publicPath: `${HOT_SERVER_URL}/build/`,
},
module: {
loaders: [
{
...BABEL_LOADER,
query: {...BABEL_QUERY, presets: [...BABEL_QUERY.presets, 'react-hmre']},
},
],
},
}
所以這一行特別是:
`webpack-hot-middleware/client?path=${HOT_SERVER_URL}/__webpack_hmr`,
path
選項允許設置熱模塊重新加載應該訪問的位置以訪問__webpack_hmr
端點。 例如,可以將其設置為:
'webpack-hot-middleware/client?path=//localhost:3000/__webpack_hmr'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.