gulp+browserSync+nodemon 實現express 全端自動刷新的實踐

學習過程寶寶內心苦,不能怨政府。。javascript

興趣所致,一直放不下nodejs的學習,時隔多日,又把express撿起來打算從新再學學,一直沒什麼太大的長進,和實際的項目經驗。真的醉了,太懶了。html

今天在從新研究supervisor的時候,忽然以爲這東西只有在服務端文件修改時纔會觸發刷新,前端樣式文件模板等等刷新時不會,前端

能實現前端修改也自動刷新不?想一想平時本身用gulp 搭虛擬服務器,用browser自動刷新,因而打算試試。java

gulp+browserSync 算是原來就有的,如今應該把目標分幾步來實現,node

一、在gulp裏運行 express 啓動的命令chrome

二、實現自動刷新express

在google+baidu 下不停的找啊搜啊,找啊搜啊,猛然發現了 gulp 好插件,gulp-nodemon! 看完介紹趕忙安裝!npm

順便提一句,npm 插件爲了全部項目能共用,我把node_module放在了工做文件夾的根目錄了,因此gulp插件也都安裝在這裏,而不是在express的項目當中,一份通用的package.json仍是很重要的。json

a\先安裝gulp

npm install --save-dev gulp-nodemon

b\修改gulpfile配置文件

 1 // 添加引用
 2 var browserSync = require('browser-sync');
 3 var reload = browserSync.reload;
 4 var nodemon = require('gulp-nodemon');
 5 
 6 //這個可讓express啓動
 7 gulp.task("node", function() {
 8     nodemon({
 9         script: './bin/www',
10         ext: 'js html',
11         env: {
12             'NODE_ENV': 'development'
13         }
14     })
15 });
16 
17 
18 gulp.task('server', ["node"], function() {
19     var files = [
20         'views/**/*.html',
21         'views/**/*.ejs',
22         'views/**/*.jade',
23         'public/**/*.*'
24     ];
25 
26     //gulp.run(["node"]);
27     browserSync.init(files, {
28         proxy: 'http://localhost:4000',
29         browser: 'chrome',
30         notify: false,
31         port: 4001
32     });
33 
34     gulp.watch(files).on("change", reload); 
35 });

browserSync的proxy參數是被代理地址,你能夠認爲是express運行的那個地址,因此proxy裏的這個4000的端口號要和express 4.x 裏 bin/www 文件裏的端口號保持一致。

其實這個地方就是我以前很久搞不定的緣由,端口號配錯了。。(內心藍瘦香菇)(中間還睡了一覺  = =! 由於搞了很久沒搞定,眼睛都困了)

 1 //express項目裏 bin/www 文件的配置 2 var port = normalizePort(process.env.PORT || '4000'); 

port 參數就是實際訪問端口了。

3\ 運行

gulp server

效果出來了哦,網頁自動打開爲http://localhost:4001/,而不須要本身手動敲地址了哦!

 

試試修改前端頁面,ctrl+s

reloading 了哦~~!

 

再來試試服務端文件修改。

成了!不過提示一下,服務端文件修改要按兩次 ctrl+s 纔會刷新頁面。我不想深究爲啥了,我手快!

(緣由想了一下 應該是在修改服務端文件後,  重啓應用形成的,重啓時不會刷新,因此在啓動後再按保存會刷新)

拿着利器繼續好好學習吧~ 

 

中間還嘗試了 node-supervisor 應該是和node-nodemon 差很少的插件,而且和npm的 supervisor包 做用差很少,能夠實現啓動node ,但自動刷新沒試出來,再繼續研究下這個東東。 

 

 

 我懶,但我也想進步!加油!

 

配圖實在太噁心拉!!!

相關文章
相關標籤/搜索