为了账号安全,请及时绑定邮箱和手机立即绑定

gulp搭建项目小试

gulp最新版

const {src, dest, watch, series, parallel} = require('gulp')
const babel = require('gulp-babel')
const uglify = require('gulp-uglify')
const rename = require('gulp-rename')
const del = require('delete')
const less = require('gulp-less')
const imagemin = require('gulp-imagemin')
const htmlmin = require('gulp-htmlmin')

function clean (cb) {
  del(['dist/'], cb)
}

function html () {
  return src('src/*.html')
  .pipe(htmlmin({
    collapseWhitespace: true, //压缩HTML
    collapseBooleanAttributes: true, //省略布尔属性的值
    removeComments: true, //清除html注释
    removeEmptyAttributes: true, //删除所有空格做属性的值
    removeScriptTypeAttributes: true, //删除<script>的type="text/javascript"
    removeStyleLinkTypeAttributes: true, //删除<style>和<link>的type="text/css"
    minifyJS: true,   //压缩页面JS
    minifyCSS: true    //压缩页面CSS
  }))
  .pipe(dest('dist/'))
}

function css () {
  return src('src/css/*.less')
  .pipe(less())
  .pipe(dest('dist/css/'))
}

function javascript () {
  return src('src/js/*.js')
  .pipe(babel({ presets: ['@babel/env'] })) // ES6转ES5
  .pipe(uglify())
  .pipe(rename({ extname: '.min.js' })) // 改变文件拓展名
  .pipe(dest('dist/js/'))
}

function image () {
  return src('src/image/**.*')
  .pipe(imagemin())
  .pipe(dest('dist/image/'))
}

watch('src/*.html', html)
watch('src/**/*.less', css)
// 监听除了src/js/index.js的其他src下所有js文件,如果有变化就执行javascript函数
watch(['src/**/*.js', '!src/js/index.js'], javascript)

// series(a, b)  表示队列执行函数,a函数先执行,b函数后执行,排队执行
// parallel(a, b) 表示同步执行,a,b函数一起执行
exports.default = series(clean, parallel(html, css, javascript, image))

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消