gulp+browserSync自动刷新页面
BrowserSync
“Browsersync能让浏览器实时、快速响应您的文件更改(html、js、css、sass、less等)并自动刷新页面。更重要的是 Browsersync可以同时在PC、平板、手机等设备下进项调试。您可以想象一下:“假设您的桌子上有pc、ipad、iphone、android等设备,同时打开了您需要调试的页面,当您使用browsersync后,您的任何一次代码保存,以上的设备都会同时显示您的改动”。无论您是前端还是后端工程师,使用它将提高您30%的工作效率。”
简单的说,BrowserSync就是搭建一个nodeJs服务器,监听指定文件,文件改动后,能够自动刷新所有设备的页面。开发时再也不用手动刷新页面啦,yeah~。
安装
首先,要安装nodeJS。
然后通过npm全局安装browserSync。
npm install -g browser-sync
完成后,查看版本号
browser-sync --version
恭喜你,安装成功啦。
输入一下命令就可以启动服务器啦,默认端口号为3000,如果默认端口号被占用,browserSync会寻找其他可用的端口号。当然,也可以通过--port指定端口号、
browser-sync start --server
更多的命令行使用方法可以参看官网。
gulp
直接上gulpfile.js代码吧。最后一行,当html发生改动后,会自动刷新页面。
let gulp = require('gulp'); let browserSync = require('browser-sync').create(); gulp.task('server', ['stylus', 'babel'],function() { browserSync.init({ server: { baseDir: './' } }) gulp.watch(`${mod}/*.html`).on('change', browserSync.reload); })
监听静态文件
gulp.task('stylus', function() { return gulp.src(filePath.css.src()) .pipe(stylus({ compress: true, use: nib() })) .pipe(gulp.dest(filePath.css.dest())) .pipe(browserSync.stream()) }) gulp.task('stylus:watch', ['stylus'], browserSync.reload()) gulp.task('babel', function() { mod = argv.m; return gulp.src(filePath.js.src()) .pipe(babel({ presets: ['es2015'] })) .pipe(gulp.dest(filePath.js.dest())); }) gulp.task('babel:watch', ['babel'], browserSync.reload())
只需要在任务的最后,调用reload方法,即可自动刷新页面了。这里只在监听任务中调用了reload()。