搬运自【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']);