react-hot-loader v3 이상 부터는 다음과 같이 코드를 업데이트 해야 합니다:
var webpack = require('webpack');
module.exports = {
entry: ['react-hot-loader/patch', './src/index.js'] ,
output: {
path: __dirname + '/public/',
filename: 'bundle.js'
},
devServer: {
hot: true,
inline: true,
host: '0.0.0.0',
port: 4000,
contentBase: __dirname + '/public/',
},
module:{
loaders: [
{
test: /.js$/,
loader: 'babel',
exclude: /node_modules/,
query: {
cacheDirectory: true,
presets: ['es2015', 'react'],
plugins: ["react-hot-loader/babel"]
}
}
]
},
plugins: [
new webpack.HotModuleReplacementPlugin()
]
};
import React from 'react'
import ReactDOM from 'react-dom'
import { AppContainer } from 'react-hot-loader'
import App from './components/App'
ReactDOM.render(
<AppContainer>
<App/>
</AppContainer>,
document.getElementById('root')
);
// Hot Module Replacement API
if (module.hot) {
module.hot.accept('./components/App', () => {
const NextApp = require('./components/App').default;
ReactDOM.render(
<AppContainer>
<NextApp/>
</AppContainer>
,
document.getElementById('root')
);
});
}
감사합니다 :)