gulp实现自动watch(gulp-watch)和自动刷新页面(browser-sync)

1、直接看 gulpfile.js 配置文件

var gulp = require('gulp');
var watch = require('gulp-watch');
var sass = require('gulp-sass');
var clean = require('gulp-clean');          // 清空文件夹
var browserSync = require('browser-sync').create();     // 用来打开一个浏览器

var html_path = 'src/**/*.html';
var css_libs_path = 'src/css/**/*.css';
var sass_libs_path = 'src/css/**/*.scss';

gulp.task('watch', function () {
    w('./src/**/*.html', 'html');
    w(css_libs_path, 'css_libs');
    w(sass_libs_path, 'sass_libs');

    function w(path, task){
        watch(path, function () {
            gulp.start(task);
            browserSync.reload();
        });
    }
});

// 清空dist文件夹
gulp.task('clean', function(){
    return gulp.src(['dist/*'])
        .pipe(clean());
});

// html模板处理
gulp.task('html', function() {
    return gulp.src(html_path)
        .pipe(gulp.dest('dist'));
});

// 打包css
gulp.task('css_libs', function(){
    return gulp.src(css_libs_path)
        .pipe(gulp.dest('dist/css'));
});

// 打包sass
gulp.task('sass_libs', function() {
    return gulp.src(sass_libs_path)
        .pipe(sass().on('error', sass.logError))
        .pipe(gulp.dest('dist/css'));
});

// 启本地服务,并打开浏览器
gulp.task('browser', function(){
    browserSync.init({
        server: 'dist'    // 访问目录,自动指向该目录下的 index.html 文件
        // proxy: "你的域名或IP"    // 设置代理
    });
});

// 加入'watch'任务
gulp.task('default', ['clean'], function() {
    gulp.start(['html', 'css_libs', 'sass_libs', 'browser', 'watch'])
});

2、目录结构

目录结构
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在现在的前端开发中,前后端分离、模块化开发、版本控制、文件合并与压缩、mock数据等等一些原本后端的思想开始...
    Charlot阅读 5,724评论 1 32
  • gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学...
    MC丶逗逼嘿阅读 729评论 0 3
  • 1、gulp的安装 首先确保你已经正确安装了nodejs环境。然后以全局方式安装gulp: npm install...
    F_imok阅读 2,526评论 1 11
  • gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学...
    井皮皮阅读 1,419评论 0 10
  • 前言 众所周知目前比较火的工具就是gulp和webpack,但webpack和gulp却有所不同,本人两者的底层研...
    cduyzh阅读 1,486评论 0 13

友情链接更多精彩内容