zoukankan      html  css  js  c++  java
  • 在Gulp中使用BrowserSync

    博客已迁移至http://zlwis.me

    很早就听说过BrowserSync,也看过一些相关文章,可就是没用过。之前一直在用Gulp开发项目,每次编写完Sass后还要用按F5刷新页面看效果,想想也是够傻的,这么好用的东西竟然现在才开始用。

    BrowserSync可以同时同步刷新多个浏览器,更神奇的是你在一个浏览器中滚动页面、点击按钮、输入框中输入信息等用户行为也会同步到每个浏览器中。

    安装browser-sync模块

        npm install browser-sync -g
    

    命令行直接使用

        browser-sync start --server --files "css/*.css"
    

    使用上面命令会开启一个迷你服务器,自动帮你打开浏览器,默认地址localhost:3000,默认打开index.html,如果没有,需要手动加上你要打开的页面,如localhost:3000/test.html

    通常你不会需要默认的地址,所以需要使用代理模式:

        browser-sync start --proxy "localhost:8080" --files "css/*.css"
    

    Browsersync + Gulp

        var gulp = require('gulp'),
            sass = require('gulp-ruby-sass'),
            autoprefixer = require('gulp-autoprefixer'),
            minifycss = require('gulp-minify-css'),
            rename = require('gulp-rename'),
            notify = require('gulp-notify');
    
        var browserSync = require('browser-sync').create();
    
        gulp.task('sass', function() {
            return sass('sass/style.scss', {style: "expanded"})
                //.pipe(sass({style: "expanded"}))
                .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
                .pipe(rename({suffix: '.min'}))
                .pipe(minifycss())
                .pipe(gulp.dest('css'))
                .pipe(notify({ message: 'Styles task complete' }))
                .pipe(browserSync.stream());
        });
    
        gulp.task('serve', ['sass'], function() {
            browserSync.init({
                server: "./"
            });
    
            gulp.watch("sass/*.scss", ['sass']);
            gulp.watch("*.html").on('change', browserSync.reload);
        });
    
        gulp.task('default', ['serve']);
    

    其中

        gulp.watch("sass/*.scss", ['sass']);
    

    会在编译完sass后,以无刷新方式更新页面。

        gulp.watch("*.html").on('change', browserSync.reload);
    

    会在修改html文件后刷新页面。

    如果需要在修改js后刷新页面,可以像下面这样:

        gulp.task('sass', function() {
            return sass('sass/style.scss', {style: "expanded"})
                //.pipe(sass({style: "expanded"}))
                .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
                .pipe(rename({suffix: '.min'}))
                .pipe(minifycss())
                .pipe(gulp.dest('css'))
                .pipe(notify({ message: 'Styles task complete' }))
                .pipe(browserSync.stream());
        });
    
        gulp.task('js', function () {
            return gulp.src('js/*js')
                .pipe(browserify())
                .pipe(uglify())
                .pipe(gulp.dest('dist/js'))
                .pipe(browserSync.stream());;
        });
    
        gulp.task('serve', ['sass', 'js'], function() {
            browserSync.init({
                server: "./"
            });
    
            gulp.watch("sass/*.scss", ['sass']);
            gulp.watch("*.html").on('change', browserSync.reload);
            gulp.watch("js/*.js", ['js'])
        });
    
        gulp.task('default', ['serve']);
    

    BrowserSync确实是一个好东西!

  • 相关阅读:
    最佳实践丨三种典型场景下的云上虚拟IDC(私有池)选购指南
    总渲染时长超3亿核小时,阿里云助力《白蛇2:青蛇劫起》提升视效
    阿里云成为首个通过“虚拟化云平台性能测试(大规模)”的云厂商
    AI性能提升2-3倍!搭载 NVIDIA A10 GPU的阿里云gn7i服务器开启邀测
    最佳实践丨阿里云ECI如何助力西软构建酒店行业多租户高弹性PaaS平台?
    暑期大放“价”,轻量应用服务器9元包月!
    报名通道开启!原生安全二倍速:探秘基础设施的内生“免疫系统"
    40万奖金等你来挑战!阿里云ECS Cloudbuild开发者大赛重磅开启
    Ubuntu安装桌面环境
    tinkphp3.0 execl导出问题
  • 原文地址:https://www.cnblogs.com/xljzlw/p/5215529.html
Copyright © 2011-2022 走看看