1.安裝yarn add react-app-rewired react-app-rewire-hot-loader react-hot-loader
2.在根目錄建立:config-overrides.js
const rewireReactHotLoader = require('react-app-rewire-hot-loader');
module.exports = function override(config, env) {
config = rewireReactHotLoader(config, env);
return config;
}
3.修改 /src/index.js
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import registerServiceWorker from './registerServiceWorker';
// Add this import:
import { AppContainer } from 'react-hot-loader';
// Wrap the rendering in a function:
const render = Component => {
ReactDOM.render(
// Wrap App inside AppContainer
<AppContainer>
<App />
</AppContainer>,
document.getElementById('root')
);
};
// Do this once
registerServiceWorker();
// Render once
render(App);
// Webpack Hot Module Replacement API
if (module.hot) {
module.hot.accept('./App', () => {
render(App);
});
}
4.修改 package.json
的 npm sript
指令
原本
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom"
}
改為
"scripts": {
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test --env=jsdom"
}