所以我一直在尝试为 React 配置热重载,我将 webpack2 与 express 和 webpack-hot-middleware 用于 HMR。
我使用适用于 Linux 的 Windows 子系统从 ubuntu 运行服务器,并使用 Windows 上的普通 Chrome 作为客户端。
它在我的 Mac 上工作得很好,但在 Windows 上却不行,我尝试将浏览器连接到“localhost”和“127.0.0.1”,还将 express 上的主机名明确设置为“localhost”、“127.0.0.0”。 0.1' 和 '0.0.0.0' 但它们都不起作用。
此外,Webpack 甚至不会在文件更改时重建。
这是我的 webpack.config.js
const path = require('path');
const webpack = require('webpack');
module.exports = {
entry: [
path.resolve(__dirname, './src/index.jsx'),
'webpack-hot-middleware/client'
],
devtool: 'inline-source-map',
plugins: [
new webpack.HotModuleReplacementPlugin(),
new webpack.NoEmitOnErrorsPlugin()
],
output: {
path: path.resolve(__dirname, './dist'),
filename: 'app.bundle.js',
publicPath: '/'
},
module: {
rules: [
{
test: /\.(js|jsx)$/,
exclude: [/node_modules/],
use: [{
loader: 'babel-loader',
options: {
presets: ['react', 'env']
}
}]
}
]
}
}
中间件配置
app.use(webpackDevMiddleware(compiler, {
publicPath: config.output.publicPath
}));
app.use(webpackHotMiddleware(compiler));
app.listen(port, () => {
console.log('Listening on port ', port);
});
最佳答案
我也遇到过这种情况,这似乎是 linux 子系统之外的文件更改问题。我正在使用 Atom 进行编辑,但没有看到重建。但是,如果我从 bash 中触摸文件或通过 vi 编辑它们,我会看到重新构建和重新加载。我并没有在 Atom 中使 webpack 通知文件更改太过分,但是如果我在我的环境中设置 CHOKIDAR_USEPOLLING=true,更改最终会在一些短的轮询间隔后被注意到。
关于reactjs - Windows 10/Ubuntu 上的 React 热模块替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45603109/