Skip to content
This repository was archived by the owner on May 21, 2020. It is now read-only.

Commit 883dcff

Browse files
committed
upgrade to react-hot-loader from deprecated react-transform-hmr
1 parent f9b520a commit 883dcff

File tree

8 files changed

+28
-51
lines changed

8 files changed

+28
-51
lines changed

.eslintrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"globals": {
1515
"__DEV__": true,
1616
"__BROWSER__": true,
17+
"__INITIAL_STATE__": true,
1718
"google": true,
1819
"jest": true
1920
},

package.json

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,15 @@
2525
"react-dom": "^15.3.1",
2626
"react-redux": "^4.4.5",
2727
"react-router": "^2.7.0",
28-
"redux": "^3.5.2",
29-
"redux-actions": "^0.11.0",
28+
"redux": "^3.6.0",
29+
"redux-actions": "^0.12.0",
3030
"redux-promise-middleware": "^4.0.0"
3131
},
3232
"devDependencies": {
33-
"autoprefixer": "^6.4.0",
33+
"autoprefixer": "^6.4.1",
3434
"babel-core": "^6.14.0",
3535
"babel-eslint": "^6.1.2",
36-
"babel-jest": "^14.1.0",
3736
"babel-loader": "^6.2.5",
38-
"babel-plugin-react-transform": "^2.0.2",
3937
"babel-plugin-syntax-trailing-function-commas": "^6.13.0",
4038
"babel-plugin-transform-class-constructor-call": "^6.8.0",
4139
"babel-plugin-transform-class-properties": "^6.11.5",
@@ -44,15 +42,16 @@
4442
"babel-plugin-transform-object-rest-spread": "^6.8.0",
4543
"babel-preset-es2015": "^6.14.0",
4644
"babel-preset-react": "^6.11.1",
47-
"browser-sync": "^2.14.3",
48-
"css-loader": "^0.24.0",
45+
"browser-sync": "^2.15.0",
46+
"css-loader": "^0.25.0",
4947
"eslint": "^3.4.0",
5048
"eslint-plugin-react": "^6.2.0",
5149
"extract-text-webpack-plugin": "^2.0.0-beta.3",
5250
"kneden": "^1.0.5",
5351
"lodash.merge": "^4.6.0",
54-
"postcss-loader": "^0.11.0",
52+
"postcss-loader": "^0.11.1",
5553
"react-a11y": "^0.3.3",
54+
"react-hot-loader": "^3.0.0-beta.3",
5655
"style-loader": "^0.13.1",
5756
"webpack": "^2.1.0-beta.21",
5857
"webpack-hot-middleware": "^2.12.2",

scripts/start.js

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -27,26 +27,9 @@ const onPluginDone = (b) => new Promise((accept) => b.plugin('done', accept))
2727
const createHotMiddlewares = (compilers) => compilers.filter(onlyBrowserCompiler).map(webpackHotMiddleware)
2828
const onlyBrowserCompiler = (compiler) => onlyBrowser(compiler.options)
2929
const onlyBrowser = (x) => x.target === 'web'
30-
const onlyBabel = (x) => x.loader === 'babel'
31-
const addTransformQuery = () => {
32-
const query = {
33-
plugins: [
34-
['react-transform', {
35-
transforms: [{
36-
transform: 'react-transform-hmr',
37-
imports: ['react'],
38-
locals: ['module']
39-
}]
40-
}]
41-
]
42-
}
43-
44-
return (x) => x.query = query
45-
}
4630
const addHotMiddleware = (c) => {
47-
c.entry[config.appName] = ['webpack-hot-middleware/client', c.entry[config.appName]]
31+
c.entry[config.appName] = ['react-hot-loader/patch', 'webpack-hot-middleware/client', c.entry[config.appName]]
4832
c.plugins.push(new webpack.HotModuleReplacementPlugin())
49-
c.module.loaders.filter(onlyBabel).forEach(addTransformQuery())
5033
}
5134
const startBrowserSync = (middlewares, bundler, restartServer) =>
5235
() => new Promise((accept) => {

src/Application/components/Authorized/components/Dashboard/view.jsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@ import React, { PropTypes as PT } from 'react'
33
import { Link } from 'react-router'
44
import { actions } from './update'
55

6-
export const view = ({ model, children, dispatch, ...props }) => {
7-
console.log('dashboard', model)
6+
export const view = ({ model, children, dispatch }) => {
87
return (
9-
<div {...props}>
8+
<div>
109
<h2>Dashboard</h2>
1110
<button onClick={() => dispatch(actions.modify({ forename: 'Hans', lastname: 'Jürgen' }))}>Change Name</button>
1211
<Link to='/authorized/profile'>Profile</Link>

src/Application/components/Login/view.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import React, { PropTypes as PT } from 'react'
33
import { Link } from 'react-router'
44
import { Actions } from './update'
55

6-
export const view = ({ children, dispatch, ...props }) => {
6+
export const view = ({ children, dispatch }) => {
77
return (
8-
<div {...props}>
8+
<div>
99
<h2>Login</h2>
1010
<button onClick={() => dispatch(Actions.update({ username: 'Harald', password: 'Francois' }))}>Login</button>
1111
<Link to='/authorized'>Authorized</Link>

src/client/index.jsx

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11

22
import { Router, browserHistory } from 'react-router/es6'
3+
import { AppContainer } from 'react-hot-loader'
34
import { Provider } from 'react-redux'
45
import React from 'react'
56
import configureStore from 'configureStore'
@@ -9,26 +10,27 @@ import { route as routes } from '../Application'
910

1011
if (__DEV__) {
1112
const Perf = require('react/lib/ReactPerf')
12-
// const a11y = require('react-a11y')
1313

1414
// Export React and Performance Utility for debugging
1515
window.React = React
1616
window.Perf = Perf
17-
// a11y(React)
1817
}
1918

20-
const main = () => {
21-
const store = configureStore(reducers)(/*__INITIAL_STATE__*/)
22-
const rootEl = document.getElementById('app')
19+
const store = configureStore(reducers)(__INITIAL_STATE__)
20+
const rootEl = document.getElementById('app')
2321

22+
const main = () => {
2423
render(
25-
<Provider store={store}>
26-
<Router history={browserHistory}>
27-
{routes}
28-
</Router>
29-
</Provider>,
24+
<AppContainer>
25+
<Provider store={store}>
26+
<Router history={browserHistory} routes={routes}/>
27+
</Provider>
28+
</AppContainer>,
3029
rootEl
3130
)
3231
}
3332

33+
if (module.hot)
34+
module.hot.accept(main)
35+
3436
main()

src/shared/configureStore/index.js

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

2+
import { applyMiddleware, combineReducers, compose, createStore } from 'redux'
23
import promiseMiddleware from 'redux-promise-middleware'
3-
import { createStore, applyMiddleware, combineReducers, compose } from 'redux'
44

55
export default (reducers = {}) => (initalState = {}) => {
66
const rootReducer = combineReducers(reducers)
@@ -10,13 +10,5 @@ export default (reducers = {}) => (initalState = {}) => {
1010
__BROWSER__ ? window.devToolsExtension ? window.devToolsExtension() : (f) => f : (f) => f
1111
)(createStore)(rootReducer, initalState)
1212

13-
if (module.hot)
14-
// Enable Webpack hot module replacement for reducers
15-
module.hot.accept('../modules', () => {
16-
const nextReducer = require('../modules')
17-
18-
store.replaceReducer(nextReducer)
19-
})
20-
2113
return store
2214
}

webpack/webpack.config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ const webpackConfig = {
3333
test: /\.(js|jsx)$/,
3434
loader: 'babel',
3535
query: {
36-
cacheDirectory: true
36+
cacheDirectory: true,
37+
plugins: DEBUG ? ['react-hot-loader/babel'] : []
3738
},
3839
exclude: /node_modules/,
3940
include: path.resolve('.')

0 commit comments

Comments
 (0)