首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使在配置之后,响应热加载也不起作用。

即使在配置之后,响应热加载也不起作用。
EN

Stack Overflow用户
提问于 2017-09-09 05:38:22
回答 1查看 128关注 0票数 1

安装了最新的“反应热”加载程序。

代码语言:javascript
复制
yarn add react-hot-loader@next

更新了入口点:

代码语言:javascript
复制
entry: [
        'react-hot-loader/patch',
        'webpack-dev-server/client?http://localhost:8080',
        'webpack/hot/only-dev-server',
        './src/app.jsx'
    ],

添加了react热加载程序/ babel到babel插件:

代码语言:javascript
复制
{
    test: /.jsx?$/,
    loader: 'babel-loader',
    include: path.resolve(__dirname, 'src'),
    exclude: /node_modules/,
    options: {
        presets: [['es2015', { modules: false }], 'react'],
        plugins: ['react-hot-loader/babel']
    }
},

添加了HMR插件

代码语言:javascript
复制
plugins: [
    new CopyWebpackPlugin([
        { from: 'src/index.html' }
    ]),
    new WriteFilePlugin(),
    new webpack.HotModuleReplacementPlugin()
],

旧AppContainer

代码语言:javascript
复制
import React from 'react';
import ReactDOM from 'react-dom';
import { AppContainer } from 'react-hot-loader';
import Home from './components/home';

const render = Component => {
    ReactDOM.render(
        <AppContainer>
            <Home />
        </AppContainer>,
        document.getElementById('react')
    )
};

render(Home);

if (module.hot) {
    module.hot.accept('./components/home', () => render(Home));
}

但仍然不起作用。该页面将完成一个完整的重新加载。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-09 06:17:57

好吧,经过一个小时的搜索和阅读,找出了这个答案。在Webpack 2及以上版本中,应该将以下配置添加到devServer中:

代码语言:javascript
复制
devServer: {
    contentBase: path.join(__dirname, 'dist'),
    hot: true
}

在我提到的Webpack早期文献中,它建议如下:

请确保在您的HotModuleReplacementPlugin中使用--热标志或webpack.config.js,但是在这种情况下,HMR插件实际上将被添加两次,破坏了设置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46127480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档