Skip to content

Commit e77692b

Browse files
committed
feat(server): add live reload
1 parent d2e6dc5 commit e77692b

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"dependencies": {
1414
"colors": "^1.1.2",
1515
"connect": "^3.4.1",
16+
"connect-livereload": "^0.5.4",
1617
"css-loader": "^0.23.1",
1718
"eslint": "^3.0.0",
1819
"extend": "^3.0.0",
@@ -26,6 +27,7 @@
2627
"left-pad": "^1.1.0",
2728
"less": "^2.7.1",
2829
"less-loader": "^2.2.3",
30+
"livereload": "^0.4.1",
2931
"loader-utils": "^0.2.15",
3032
"moment": "^2.14.1",
3133
"optimist": "^0.6.1",

src/commands/server.js

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,23 @@ let connect = require('connect'),
55
serveStatic = require('serve-static'),
66
serveIndex = require('serve-index'),
77
moment = require('moment'),
8+
livereload = require('livereload'),
9+
connectLivereload = require('connect-livereload'),
810
webpackDevMiddleware = require("webpack-dev-middleware");
911

1012
let Manager = require('../modules/manager.js');
1113

1214
exports.usage = "开发服务";
1315

1416
exports.setOptions = (optimist) => {
15-
optimist.alias('h', 'hot');
16-
optimist.describe('h', '热加载');
1717
optimist.alias('s', 'https');
1818
optimist.describe('s', '使用https协议');
1919
optimist.alias('p', 'port');
2020
optimist.describe('p', '端口');
2121
optimist.alias('m', 'middlewares');
2222
optimist.describe('m', '加载项目中间件');
23+
optimist.alias('l', 'livereload');
24+
optimist.describe('l', '实时自动刷新');
2325
};
2426

2527
exports.run = (options) => {
@@ -28,6 +30,7 @@ exports.run = (options) => {
2830
hot = options.h || options.hot,
2931
middlewares = options.m || options.middlewares,
3032
https = options.s || options.https,
33+
enableLivereload = options.l || options.livereload,
3134
port = options.p || options.port || 80;
3235

3336
let middlewareCache = {};
@@ -109,10 +112,7 @@ exports.run = (options) => {
109112
});
110113
if (project.check()) {
111114
let compiler = project.getCompiler();
112-
middleware = middlewareCache[projectName] = webpackDevMiddleware(compiler, {
113-
noInfo: true
114-
// hot: hot TODO
115-
});
115+
middleware = middlewareCache[projectName] = webpackDevMiddleware(compiler, {noInfo: true});
116116
} else {
117117
next();
118118
return;
@@ -125,13 +125,19 @@ exports.run = (options) => {
125125
}
126126
});
127127

128+
if(enableLivereload){
129+
livereload.createServer().watch(cwd);
130+
app.use(connectLivereload({port: 35729}));
131+
}
132+
128133
app.use(serveStatic(cwd, {
129134
redirect: false,
130135
index: false
131136
}));
132137

133138
app.use(serveIndex(cwd));
134139

135-
http.createServer(app).listen(port);
136-
info('Listening on port ' + port)
140+
http.createServer(app).listen(port, () => {
141+
info('Listening on port ' + port);
142+
});
137143
};

0 commit comments

Comments
 (0)