nodejs裏的express自動刷新gulp-express使用【轉載】
阿新 • • 發佈:2017-08-25
clas style node live target .net callbacks n) 感覺
搬運自【http://blog.csdn.net/zhu_free/article/details/51476525】
gulp-express實現實時刷新
本來使用gulp-connect可以創建本地服務器,配合Livereload就可以實現實時刷新,但express項目自帶了服務器,就不太好辦了,之前用了gulp-express,實現了一部分,感覺很方便,但是只有jade模板變化會實時刷新,樣式表和js文件則不會,之前的部分代如下:
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文件的路徑:
gulp.watch([‘views/**/*.jade‘, ‘src/js/**/*.js‘, ‘src/scss/**/*.scss‘], express.notify);
最後的解決辦法是。。。代碼加上了這兩句
gulp.watch(‘public/**/*.css‘, express.notify); gulp.watch(‘public/**/*.js‘, express.notify);
總結完整代碼
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‘]);
nodejs裏的express自動刷新gulp-express使用【轉載】