监听sass、html变化热更新,gulp4配置

用习惯了Vue的脚手架,有时候脱离框架开发的时候确实不习惯,连基本的自动编译和热更新都没,手动刷新查看变化太不爽了。
今天又把以前用过的gulp捡起来,结果因为node已经是14+了,gulp3的写法过时了,运行不起来。重新学习gulp4,记录下。

这个配置是没有用到打包功能的,只是监测本地文件变更,再编译scss为css,最后热更新。

package.json,其实用不了那么多,真正使用的依赖没几个,可以自行筛选

"devDependencies": {
    "chai": "^4.1.1",
    "del": "^2.2.2",
    "express-mockjs": "^0.4.9",
    "gulp": "^4.0.2",
    "gulp-autoprefixer": "^2.2.0",
    "gulp-cache": "^1.1.3",
    "gulp-clean-css": "^3.0.0",
    "gulp-compass": "^2.1.0",
    "gulp-concat": "^2.6.0 ",
    "gulp-header": "^1.8.8",
    "gulp-htmlmin": "^3.0.0",
    "gulp-if": "^2.0.1",
    "gulp-livereload": "^4.0.2",
    "gulp-minify-css": "^1.2.4",
    "gulp-notify": "^2.2.0",
    "gulp-plumber": "^1.2.1",
    "gulp-rename": "^1.2.2",
    "gulp-replace": "^0.6.1",
    "gulp-ruby-sass": "^1.0.5",
    "gulp-uglify": "^1.5.4",
    "gulp-webserver": "^0.9.1",
    "minimist": "^1.2.0",
    "mocha": "^3.2.0",
    "sinon": "^3.2.1",
    "sinon-chai": "^2.13.0"
  },
  "dependencies": {
    "browser-sync": "^2.27.7",
    "gulp-connect": "^5.7.0",
    "gulp-livereload": "^4.0.2",
    "gulp-sass": "^5.1.0",
    "gulp-watch": "^5.0.1",
    "node-sass": "^7.0.1"
  }
}

gulpfile.js:



var pkg = require('./package.json');
var inds = pkg.independents;

var gulp = require('gulp');

var plumber = require('gulp-plumber');
var compass = require('gulp-compass');
var sass = require('gulp-sass')(require('node-sass'));
var autoprefixer = require('gulp-autoprefixer');
const browserSync = require("browser-sync").create(), //自动刷新
    reload = browserSync.reload;
var watch = require('gulp-watch');//监视
var connect=require('gulp-connect');//引入gulp-connect模块 浏览器刷新
var uglify = require('gulp-uglify');
var minifyCss = require('gulp-minify-css');
var concat = require('gulp-concat');
var rename = require('gulp-rename');
var notify = require('gulp-notify');
var cache = require('gulp-cache');
var livereload = require('gulp-livereload');
var webserver = require('gulp-webserver');
var replace = require('gulp-replace');

var header = require('gulp-header');
var del = require('del');
var gulpif = require('gulp-if');
var minimist = require('minimist');



gulp.task('html', function(){//编译html
  return gulp.src('src/views/**/*.html')
  //.pipe(gulp.dest('app/dist'))
      .pipe(connect.reload());
})

gulp.task('css', function(){//编译scss
  return gulp.src('src/sass/**/*.scss')

      //.pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))//编译scss

      //使用gulp-compass,必须本机安装compass: npm install gulp-compass --save-dev
      .pipe(plumber({
          errorHandler: function (error) {
              console.log(error.message);
              this.emit('end');
          }}))
      .pipe(compass({
          //config_file: './config.rb',
          //project: path.join(__dirname, 'assets'),
          css: 'src/style',
          sass: 'src/sass',
          image: 'src/style/images',
          style: 'compressed'
      }))
      .on('error', function(error) {
          // Would like to catch the error here
      })
      .pipe(minifyCss())
      .pipe(gulp.dest('src/style')) //当前对应css文件
      .pipe(connect.reload());//更新
})

gulp.task('connect:src', async function(){
  gulp.src('/')
      .pipe(webserver({
        host:'localhost', //根域名
        path:'/', //默认localhost:8080
        livereload: true, //自动更新
        open: 'start/index.html' ,
        port: 9998 //端口
      }))
})

gulp.task('watchs',function(){//监听变化执行任务
  //当匹配任务变化才执行相应任务
  gulp.watch(['src/views/**/*.html', 'start/views/**/*.html'], gulp.series('html'));
  gulp.watch('src/sass/**/*.scss', gulp.series('css'));
  gulp.watch('src/style/**/*.css');
})

//启动任务connect:dist服务,生成打包文件后,监控其变化
gulp.task('serve',gulp.series('connect:src', 'watchs'));

配置完后,使用命令启动热服务

gulp serve

创建sass变量文件,然后@import到其他scss文件。

@import "compass/css3", "compass/support", "compass/utilities";
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,393评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,790评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,391评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,703评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,613评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,003评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,507评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,158评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,300评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,256评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,274评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,984评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,569评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,662评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,899评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,268评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,840评论 2 339