关于gulp的使用及配置

不管三七二十一,先来一段代码

/* 
  gulp是基于任务来实现自动化
  对于gulp来说,每件事情都是一个任务
*/
const { src, dest, task, series, watch, parallel } = require('gulp')
const uglify = require('gulp-uglify-es').default
const rename = require('gulp-rename')
const less = require('gulp-less')
const minifycss = require('gulp-minify-css')
// const imgmin = require('gulp-imagemin')
const cache = require('gulp-cache')
const minifyHtml = require('gulp-minify-html')
const extender = require('gulp-html-extend')
const del = require('del')
const connect = require('gulp-connect')

// 用来定义gulp任务
// 参数1:任务名字
// 参数2: 函数

// 简单拷贝, 处理 lib文件夹, lib文件不需要做任何的处理,只需要拷贝到dist目录
// 任务需要加一个return, 表示任务完成
task('lib', function() {
  // 读取文件
  // src() 读取文件
  // pipe() 管道
  // dest() 放到哪儿
  return (
    src('./src/lib/**/*.*')
      .pipe(dest('./dist/lib'))
      // 让服务器重新加载
      .pipe(connect.reload())
  )
})

// 处理js
task('js', function() {
  return (
    src('./src/js/*.js')
      .pipe(dest('./dist/js'))
      // 对js代码进行丑化
      .pipe(uglify())
      .pipe(
        rename({
          // prefix: 'aa-',
          suffix: '.min'
        })
      )
      .pipe(dest('./dist/js'))
      .pipe(connect.reload())
  )
})

// 处理less
task('less', function() {
  return (
    src('./src/less/*.less')
      .pipe(less())
      .pipe(dest('./dist/css'))
      // 压缩css
      .pipe(minifycss())
      .pipe(
        rename({
          suffix: '.min'
        })
      )
      .pipe(dest('./dist/css'))
      .pipe(connect.reload())
  )
})

// 处理图片
task('img', function() {
  return (
    src('./src/img/*.*')
      // 对压缩过的图片进行缓存
      // .pipe(cache(imgmin()))
      .pipe(dest('./dist/img'))
      .pipe(connect.reload())
  )
})

// 处理html
task('html', function() {
  return src('./src/*.html')
    .pipe(extender())
    .pipe(minifyHtml())
    .pipe(dest('./dist'))
    .pipe(connect.reload())
})

// 清除dist
task('clean', function() {
  return del('./dist')
})

// 实现一个,修改代码,会自动执行任务
// 监听的任务,,,,,,做一件事件,当我们修改了对应的文件,需要执行对应的任务
// gulp.watch() 监视文件
task('watch', function() {
  // 参数1:监视的文件
  // 参数2: 对应的任务, 多个任务
  watch('./src/**/*.html', series('html'))
  watch('./src/less/*.less', series('less'))
  watch('./src/js/*.js', series('js'))
  watch('./src/lib/**/*.*', series('lib'))
  watch('./src/img/*.*', series('img'))
})

// 定义任务,自动刷新, 当文件发生变化的时候
// 自动启动一个服务器
task('connect', function() {
  return connect.server({
    // 服务器的根目录
    root: './dist',
    livereload: true,
    port: 9999
  })
})

// series可以组合多个任务
task(
  'default',
  series(
    'clean',
    'html',
    'less',
    'js',
    'img',
    'lib',
    // 可以并行执行任务,会多个任务组合更大的任务
    parallel('watch', 'connect')
  )
)

先记着,以后再说…

本项目是一个基于SSM(Spring+SpringMVC+MyBatis)框架和Vue.js前端技术的大学生第二课堂系统,旨在为大学生提供一个便捷、高效的学习和实践平台。项目包含了完整的数据库设计、后端Java代码实现以及前端Vue.js页面展示,适合计算机相关专业的毕设学生和需要进行项目实战练习的Java学习者。 在功能方面,系统主要实现了以下几个模块:用户管理、课程管理、活动管理、成绩管理和通知公告。用户管理模块支持学生和教师的注册、登录及权限管理;课程管理模块允许教师上传课程资料、设置课程时间,并由学生进行选课;活动管理模块提供了活动发布、报名和签到功能,鼓励学生参与课外实践活动;成绩管理模块则用于记录和查询学生的课程成绩和活动参与情况;通知公告模块则实时发布学校或班级的最新通知和公告。 技术实现上,后端采用SSM框架进行开发,Spring负责业务逻辑层,SpringMVC处理Web请求,MyBatis进行数据库操作,确保了系统的稳定性和扩展性。前端则使用Vue.js框架,结合Axios进行数据请求,实现了前后端分离,提升了用户体验和开发效率。 该项目不仅提供了完整的源代码和相关文档,还包括了详细的数据库设计文档和项目部署指南,为学习和实践提供了便利。对于基础较好的学习者,可以根据自己的需求在此基础上进行功能扩展和优化,进一步提升自己的技术水平和项目实战能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值