Skip to content

Commit a1ba572

Browse files
author
Kyle Lamse
committed
Use hmr in webpack dev server
1 parent 6622454 commit a1ba572

File tree

4 files changed

+50
-8
lines changed

4 files changed

+50
-8
lines changed

config/webpack.dev.config.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import paths from './paths';
88

99
const config: Configuration = {
1010
entry: {
11+
client: 'webpack-hot-middleware/client',
1112
app: paths.entry,
1213
vendor : ['react', 'react-dom'],
1314
polyfills: ['es6-promise/auto', 'whatwg-fetch']
@@ -43,9 +44,10 @@ const config: Configuration = {
4344
// Extract css files into one giant file
4445
{
4546
test: /\.css$/,
46-
use: ExtractTextPlugin.extract({
47-
use: 'css-loader'
48-
})
47+
use: [
48+
'style-loader',
49+
'css-loader'
50+
]
4951
}
5052
]
5153
},
@@ -60,7 +62,8 @@ const config: Configuration = {
6062
filename: 'index.html',
6163
template: path.join(paths.template, 'index.ejs'),
6264
PUBLIC_PATH: paths.staticPath
63-
})
65+
}),
66+
new webpack.HotModuleReplacementPlugin()
6467
]
6568
};
6669

package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"@types/node": "^8.0.8",
2121
"@types/webpack": "^3.0.1",
2222
"@types/webpack-dev-middleware": "^1.9.1",
23+
"@types/webpack-hot-middleware": "^2.15.0",
2324
"awesome-typescript-loader": "^3.2.1",
2425
"css-loader": "^0.28.4",
2526
"enzyme": "^2.9.1",
@@ -29,13 +30,15 @@
2930
"nodemon": "^1.11.0",
3031
"react-test-renderer": "^15.6.1",
3132
"source-map-loader": "^0.2.1",
33+
"style-loader": "^0.18.2",
3234
"ts-jest": "^20.0.6",
3335
"ts-node": "^3.1.0",
3436
"tslint": "^5.5.0",
3537
"tslint-eslint-rules": "^4.1.1",
3638
"typescript": "^2.4.1",
3739
"webpack": "^3.0.0",
38-
"webpack-dev-middleware": "^1.11.0"
40+
"webpack-dev-middleware": "^1.11.0",
41+
"webpack-hot-middleware": "^2.18.2"
3942
},
4043
"dependencies": {
4144
"@types/express": "^4.0.36",

scripts/dev-server.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import * as express from 'express';
22
import * as webpackDevMiddleware from 'webpack-dev-middleware';
3-
import * as compiler from 'webpack';
3+
import * as webpackHotMiddleware from 'webpack-hot-middleware';
4+
import * as webpack from 'webpack';
45

56
import webpackConfig from '../config/webpack.dev.config';
67
import webpackDevServerConfig from '../config/webpack.server.config';
@@ -11,7 +12,11 @@ const app = express();
1112
// have express serve static files
1213
app.use(paths.staticPath, express.static(paths.public));
1314

15+
const compiler = webpack(webpackConfig);
16+
1417
// allow webpack to inject output to server
15-
app.use(webpackDevMiddleware(compiler(webpackConfig), webpackDevServerConfig));
18+
app.use(webpackDevMiddleware(compiler, webpackDevServerConfig));
19+
20+
app.use(webpackHotMiddleware(compiler));
1621

1722
app.listen(8080);

yarn.lock

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,13 @@
142142
"@types/connect" "*"
143143
"@types/webpack" "*"
144144

145+
"@types/webpack-hot-middleware@^2.15.0":
146+
version "2.15.0"
147+
resolved "https://registry.yarnpkg.com/@types/webpack-hot-middleware/-/webpack-hot-middleware-2.15.0.tgz#15c93c44ff2b6369d898df7ef42a374e8ba6780e"
148+
dependencies:
149+
"@types/connect" "*"
150+
"@types/webpack" "*"
151+
145152
"@types/webpack@*", "@types/webpack@^3.0.1":
146153
version "3.0.1"
147154
resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-3.0.1.tgz#c8c5d085ceb709d3b7391ce95f659a9b3f498205"
@@ -225,6 +232,10 @@ ansi-escapes@^1.4.0:
225232
version "1.4.0"
226233
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
227234

235+
ansi-html@0.0.7:
236+
version "0.0.7"
237+
resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e"
238+
228239
ansi-regex@^2.0.0, ansi-regex@^2.1.1:
229240
version "2.1.1"
230241
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
@@ -2183,6 +2194,10 @@ html-encoding-sniffer@^1.0.1:
21832194
dependencies:
21842195
whatwg-encoding "^1.0.1"
21852196

2197+
html-entities@^1.2.0:
2198+
version "1.2.1"
2199+
resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f"
2200+
21862201
html-minifier@^3.2.3:
21872202
version "3.5.2"
21882203
resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.2.tgz#d73bc3ff448942408818ce609bf3fb0ea7ef4eb7"
@@ -4197,7 +4212,7 @@ querystring-es3@^0.2.0:
41974212
version "0.2.1"
41984213
resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
41994214

4200-
querystring@0.2.0:
4215+
querystring@0.2.0, querystring@^0.2.0:
42014216
version "0.2.0"
42024217
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
42034218

@@ -4852,6 +4867,13 @@ strip-json-comments@^2.0.0, strip-json-comments@~2.0.1:
48524867
version "2.0.1"
48534868
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
48544869

4870+
style-loader@^0.18.2:
4871+
version "0.18.2"
4872+
resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.18.2.tgz#cc31459afbcd6d80b7220ee54b291a9fd66ff5eb"
4873+
dependencies:
4874+
loader-utils "^1.0.2"
4875+
schema-utils "^0.3.0"
4876+
48554877
supports-color@^2.0.0:
48564878
version "2.0.0"
48574879
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
@@ -5323,6 +5345,15 @@ webpack-dev-middleware@^1.11.0:
53235345
path-is-absolute "^1.0.0"
53245346
range-parser "^1.0.3"
53255347

5348+
webpack-hot-middleware@^2.18.2:
5349+
version "2.18.2"
5350+
resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.18.2.tgz#84dee643f037c3d59c9de142548430371aa8d3b2"
5351+
dependencies:
5352+
ansi-html "0.0.7"
5353+
html-entities "^1.2.0"
5354+
querystring "^0.2.0"
5355+
strip-ansi "^3.0.0"
5356+
53265357
webpack-sources@^1.0.1:
53275358
version "1.0.1"
53285359
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.0.1.tgz#c7356436a4d13123be2e2426a05d1dad9cbe65cf"

0 commit comments

Comments
 (0)