Ответ 1
Здесь работал у меня в приложении, над которым я работаю, где я использую горячую перезагрузку webpack + socket.io на тот же самый экспресс-сервер.
Добавляет к вашему package.json
:
"webpack-dev-middleware": "^1.4.0",
"webpack-hot-middleware": "^2.6.0"
В разделе plugins
вашего веб-пакета config:
plugins: [
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.HotModuleReplacementPlugin(),
new webpack.NoErrorsPlugin(),
],
Настройка для экспресс-приложения:
const http = require('http');
const express = require('express');
const webpack = require('webpack');
const webpackConfig = require('./webpack.config');
const compiler = webpack(webpackConfig);
// Create the app, setup the webpack middleware
const app = express();
app.use(require('webpack-dev-middleware')(compiler, {
noInfo: true,
publicPath: webpackConfig.output.publicPath,
}));
app.use(require('webpack-hot-middleware')(compiler));
// You probably have other paths here
app.use(express.static('dist'));
const server = new http.Server(app);
const io = require('socket.io')(server);
const PORT = process.env.PORT || 8090;
server.listen(PORT);
io.on('connection', (socket) => {
// <insert relevant code here>
socket.emit('mappy:playerbatch', playerbatch);
});
Я отправил щедрость на этот вопрос, чтобы помочь ответить на этот вопрос, хотя у меня есть работа для моего собственного приложения.