首页 > 代码库 > gulp+browserSync自动刷新页面

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()。

gulp+browserSync自动刷新页面