搬運自【http://blog.csdn.net/zhu_free/article/details/51476525】css
gulp-express實現實時刷新express
原本使用gulp-connect能夠建立本地服務器,配合Livereload就能夠實現實時刷新,但express項目自帶了服務器,就不太好辦了,以前用了gulp-express,實現了一部分,感受很方便,可是隻有jade模板變化會實時刷新,樣式表和js文件則不會,以前的部分代以下:gulp
gulp.task('server', ['styles', 'scripts'], function() { express.run(['./bin/www']); //啓動 gulp.watch('src/scss/**/*.scss', ['styles']); //監視樣式表 gulp.watch('src/js/**/*.js', ['scripts']); //監視js文件 gulp.watch('views/**/*.jade', express.notify); //監視模板文件 gulp.watch(['app.js', 'routes/**/*.js'], express.run); }); gulp.task('default', ['server']);
找了一些資料提到一些gulp-livereload
, connect-livereload
各類,仍是沒有想出來解決辦法,最後突然想到是否是gulp-express
已經自帶了,而後注意到express.notify
這個函數貌似就是刷新的意思,因而嘗試在styles
和scripts
方法裏面結尾加上express.notify()
,結果並無什麼卵用,而後試着在watch方法的callbacks列表後面加上notify:服務器
gulp.watch('src/scss/**/*.scss', ['styles', express.notify]); //監視樣式表 gulp.watch('src/js/**/*.js', ['scripts', express.notify]); //監視js文件
仍是沒有做用→_→
而後試着在模板文件的路徑前面加上樣式表和js文件的路徑:app
gulp.watch(['views/**/*.jade', 'src/js/**/*.js', 'src/scss/**/*.scss'], express.notify);
最後的解決辦法是。。。代碼加上了這兩句函數
gulp.watch('public/**/*.css', express.notify); gulp.watch('public/**/*.js', express.notify);
總結完整代碼.net
gulp.task('server', ['styles', 'scripts'], function() { express.run(['./bin/www']); //啓動 gulp.watch('src/scss/**/*.scss', ['styles']); //監視樣式表 gulp.watch('src/js/**/*.js', ['scripts']); //監視js文件 gulp.watch('views/**/*.jade', express.notify); //監視模板文件 gulp.watch(['app.js', 'routes/**/*.js'], express.run); gulp.watch('public/**/*.css', express.notify); gulp.watch('public/**/*.js', express.notify); }); gulp.task('default', ['server']);