繁体   English   中英

添加react-hot-loader以弹出create-react-app

[英]Adding react-hot-loader to ejected create-react-app

我正在使用此提交中的指令尝试将react-hot-loader版本3添加到create-react-app (滚动到底部查看babel和webpack配置)

编辑:'webpack/hot/dev-server'更改为'webpack/hot/only-dev-server'允许热重新加载工作。 为什么这样? 另外,如果无法重新加载完整状态,我将如何重新加载网页?

预期行为:

在编辑器中编辑React组件会替换浏览器中的模块,而无需刷新浏览器。

实际行为(改变配置):

在编辑器中编辑React组件会刷新浏览器,无论进行何种更改,都会显示更改。

我的代码:

我正在使用以下代码(如本提交中所建议的)重新加载应用程序,包括Redux中的Provider / store。

import React    from 'react'
import ReactDOM from 'react-dom'

import App from "./components/App/App"
import "./styles/index.scss"

import { AppContainer } from 'react-hot-loader'
import configureStore from "./redux/store"

const store = configureStore()

ReactDOM.render(
  <div>
    <AppContainer>
      <App store={store} />
    </AppContainer>
  </div>,
  document.getElementById('root')
)

if (module.hot) {
  module.hot.accept('./components/App/App', () => {
    render(
      <AppContainer props={{ store }}>
        {require('./components/App/App').default}
      </AppContainer>,
      document.getElementById('root')
    )
  })
}

我的配置:

原始配置来自create-react-app工具。 改变后的配置是我试图让react-hot-loader在这个项目中工作。

原始CRA webpack配置: https//github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/config/webpack.config.dev.js

我改变的CRA webpack配置: https ://gist.github.com/Connorelsea/674a31e157d54144623ebf0ec775e0e7

原始CRA babel配置: https//github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/config/babel.dev.js

我改变的CRA babel配置: https//gist.github.com/Connorelsea/58664bfea423f5708a2e0f168fd391c9

花了半天时间,使用2017年10月的CRA - 1.0.14,它非常简单。 删除所有更改并执行以下两项操作:

1)添加到index.js

 if (module.hot) { module.hot.accept(); } 

2)更新configureStore.js:

 if (module.hot && process.env.NODE_ENV !== 'production') { module.hot.accept('./reducers', () => { const nextRootReducer = require('./reducers'); // eslint-disable-line store.replaceReducer(nextRootReducer); }); } return store; 

使用create-react-app v0.6.1附带的服务器似乎对我工作正常。 像这样: require.resolve('react-dev-utils/webpackHotDevClient'),

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM