Skip to content

Commit f7439e2

Browse files
committed
Convert todomvc example to webpack-hot-middleware
1 parent 0f45fc1 commit f7439e2

File tree

3 files changed

+29
-18
lines changed

3 files changed

+29
-18
lines changed

examples/todomvc/package.json

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
"version": "0.0.0",
44
"description": "Redux TodoMVC example",
55
"scripts": {
6-
"start": "node server.js",
6+
"start": "concurrent 'npm run server' 'npm run client'",
7+
"server": "node server.js",
8+
"client": "webpack",
79
"test": "NODE_ENV=test mocha --recursive --compilers js:babel-core/register",
810
"test:watch": "npm test -- --watch"
911
},
@@ -26,7 +28,9 @@
2628
"babel-core": "^5.6.18",
2729
"babel-loader": "^5.1.4",
2830
"babel-plugin-react-transform": "^1.0.3",
31+
"concurrently": "^0.1.1",
2932
"expect": "^1.8.0",
33+
"express": "^4.13.3",
3034
"jsdom": "^5.6.1",
3135
"mocha": "^2.2.5",
3236
"mocha-jsdom": "^1.0.0",
@@ -36,6 +40,7 @@
3640
"style-loader": "^0.12.3",
3741
"todomvc-app-css": "^2.0.1",
3842
"webpack": "^1.9.11",
39-
"webpack-dev-server": "^1.9.0"
43+
"webpack-dev-middleware": "^1.2.0",
44+
"webpack-hot-middleware": "^2.2.0"
4045
}
4146
}

examples/todomvc/server.js

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,23 @@
11
var webpack = require('webpack');
2-
var WebpackDevServer = require('webpack-dev-server');
2+
var webpackDevMiddleware = require('webpack-dev-middleware');
3+
var webpackHotMiddleware = require('webpack-hot-middleware');
34
var config = require('./webpack.config');
45

5-
new WebpackDevServer(webpack(config), {
6-
publicPath: config.output.publicPath,
7-
hot: true,
8-
historyApiFallback: true,
9-
stats: {
10-
colors: true
11-
}
12-
}).listen(3000, 'localhost', function (err) {
13-
if (err) {
14-
console.log(err);
15-
}
6+
var app = new require('express')();
7+
var port = 3000;
8+
9+
var compiler = webpack(config);
10+
app.use(webpackDevMiddleware(compiler, { noInfo: true, publicPath: config.output.publicPath }));
11+
app.use(webpackHotMiddleware(compiler, { log: console.log, path: '/__webpack_hmr', heartbeat: 10 * 1000 }));
1612

17-
console.log('Listening at localhost:3000');
13+
app.get("/", function(req, res) {
14+
res.sendFile(__dirname + '/index.html');
15+
});
16+
17+
app.listen(port, function(error) {
18+
if (error) {
19+
console.error(error);
20+
} else {
21+
console.info("==> 🌎 Listening on port %s. Open up http://localhost:%s/ in your browser.", port, port);
22+
}
1823
});

examples/todomvc/webpack.config.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ var webpack = require('webpack');
44
module.exports = {
55
devtool: 'cheap-module-eval-source-map',
66
entry: [
7-
'webpack-dev-server/client?http://localhost:3000',
8-
'webpack/hot/only-dev-server',
7+
'webpack-hot-middleware/client?path=/__webpack_hmr&timeout=20000',
98
'./index'
109
],
1110
output: {
@@ -14,7 +13,9 @@ module.exports = {
1413
publicPath: '/static/'
1514
},
1615
plugins: [
17-
new webpack.HotModuleReplacementPlugin()
16+
new webpack.optimize.OccurenceOrderPlugin(),
17+
new webpack.HotModuleReplacementPlugin(),
18+
new webpack.NoErrorsPlugin()
1819
],
1920
module: {
2021
loaders: [{

0 commit comments

Comments
 (0)