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

搬運自【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-livereloadconnect-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文件的路徑: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']);
相關文章
相關標籤/搜索