1. 程式人生 > >nodejs裏的express自動刷新gulp-express使用【轉載】

nodejs裏的express自動刷新gulp-express使用【轉載】

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這個函數貌似就是刷新的意思,於是嘗試在stylesscripts方法裏面結尾加上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使用【轉載】