【问题标题】:React hot reload not working with webpack 4反应热重载不适用于 webpack 4
【发布时间】:2018-09-15 04:41:43
【问题描述】:

React 热重载不起作用。 在 webpack 条目中,我有以下代码。

entry: {
        home: [
            'webpack-dev-server/client?http://0.0.0.0:8000', 
            'webpack/hot/dev-server', // add "only-dev-server" prevents reload on syntax errors
            path.join(__dirname, 'app/home-styles.js')
        ],
        main: [
            'babel-polyfill',
            path.join(__dirname, 'app/styles.js'),
            path.join(__dirname, 'app/vendor.js'),
            path.join(__dirname, 'app/index.js')
        ]
    },

在开发服务器中我有 hot = true;

并且我有以下代码用于将 Provider 包装在热中

class Root extends Component {
    render() {
        const { store, history } = this.props;
        return (
            <Provider store={store}>
                <Router history={history} routes={routes(store)}/>
            </Provider>
        );
    }
}

export default hot(module)(Root);

这是控制台的结果,但是当有一些变化时没有任何反应。所以基本上看起来好像热重载正在工作,但是..没有任何变化反映。我在这里想念什么。 ?

我正在使用 react 16.2.* 和 react-hot-loader @4.0.* 一个 webpack @4.5.*

【问题讨论】:

  • 您找到解决此问题的方法了吗?我有一个非常相似的
  • 不.. 我决定暂时忽略它.. 稍后会调查.. 如果你找到一个.. 请评论:P 你可以设置赏金问题.. 有人会回答:P
  • 你在使用 webpack 开发服务器吗?
  • 是的,我们正在使用 webpack 开发服务器。为什么?
  • 您是从 IP 访问您的应用程序还是将其映射到域?

标签: javascript reactjs webpack webpack-dev-server react-hot-loader


【解决方案1】:

尝试像这样更新您的开发服务器配置

const devServerOptions = {
    contentBase: './dist',
    hot: true,
    host: 'beta.whenidev.net',
    https: true,
  };
// if you're adding a dev server entry do it like this
  WebpackDevServer.addDevServerEntrypoints(config, devServerOptions);

【讨论】:

  • 希望它对您有用,我们花了几天时间才找到它。归结为使用将主机设置为 ip 而不是域。
猜你喜欢
  • 2019-10-11
  • 2019-05-29
  • 2020-11-24
  • 2019-11-27
  • 1970-01-01
  • 2016-05-18
  • 2018-05-17
  • 2019-07-08
  • 2018-10-16
相关资源
最近更新 更多