Gulp安装及使用

一.Gulp安装

# 安装全局环境
npm install gulp -g
#安装本地环境
npm install gulp --save-dev

 

二.Gulp提供的方法

方法说明
gulp.src()获取任务要处理的文件
gulp.dest()输出文件
gulp.task()建立gulp任务
gulp.watch()监控文件的变化

三.Gulp常用插件

插件说明
gulp-htmlmin压缩HTML文件
gulp-csso 压缩css
gulp-babelJavaScript语法转化
gulp-less less语法转化
gulp-uglify gulp-uglify :压缩混淆JavaScript
gulp-file-include 公共文件包
browsersync 浏览器实时同步

四. 在项目中使用gulp

1.压缩并抽取HTML中公共代码

(1) 下载插件
npm install gulp-htmlmin
npm install gulp-file-include

 (2) 引入插件
// 引入htmlmin插件
const htmlmin = require('gulp-htmlmin')
// 引入gulp-file-include
const fileInclude = require('gulp-file-include') 

(3) 在gulpfile.js文件中调用gulp-file-include插件,抽取HTML中的公共代码

 gulp.task('htmlmin', callback => {
    // 获取文件:html文件
    gulp.src('./src/*.html')
        // 抽取公共部分的代码
        .pipe(fileInclude())
        // 压缩html代码
        // .pipe()只是对文件处理的结果进行包装,并不会直接操作文件
        .pipe(htmlmin({
            collapseWhitespace: true
        }))
        // 抽取并压缩后的html文件输出dist目录下
        .pipe(gulp.dest('./dist'))
    callback();
})

压缩前:

压缩后:

(4) 执行任务 gulp htmlmin

 2.压缩并转换Less语法

(1)下载插件
   1.less转换
     npm install gulp-less
  2.css压缩
    npm install gulp-csso

(2)引入插件
// 引入gulp-less插件
const less = require('gulp-less')
// 引入gulp-csso插件
const cssmin = require('gulp-csso') 

(3)在css文件夹下面建.less后缀的文件

(4)在gulpfile.js文件中调用gulp-less插件,实现将Less语法转换为CSS语法,调用gulp-csso      插件,对CSS代码进行压缩
  gulp.task('cssmin', callback => {
    // 获取文件.css .less两种类型的文件
    gulp.src(['./src/*.css', './src/css/*.less'])
        // 转换less语法
        .pipe(less())
        // 压缩css文件
        .pipe(cssmin())
        // 输出处理之后的文件
        .pipe(gulp.dest('./dist/css'))
    callback();
}) 

转换压缩后:

5.执行任务 gulp cssmin

3.压缩并转换ES6语法 

(1)下载插件

     npm install gulp-uglify

     npm install gulp-babel @babel/core @babel/preset-env

     npm install uglify

 (2) //引入gulp-babel插件
     const babel = require('gulp-babel')
     // 引入gulp-uglify插件
     const uglify = require('gulp-uglify')

 (3)在gulpfile.js文件中调用gulp-babel插件,实现ES6语法的转换,调用gulp-uglify插件,对            JavaScript代码进行压缩
  gulp.task('jsmin', callback => {
    // 获取文件.js
    gulp.src('./src/js/*.js')
        // 转换es6代码
        .pipe(babel({
            // 判断当前代码的运行环境,将代码转换为当前运行环境所支持的代码
            presets: ['@babel/env']
        }))
        // 压缩js文件
        .pipe(uglify())
        // 输出处理之后的文件
        .pipe(gulp.dest('./dist/js'))
    callback();
})

转换压缩后:

 (4)执行任务gulp jsmin

 4.复制目录 

// 建立任务:copy(images/lib)
gulp.task('copy', callback => {
    // 获取文件images
    gulp.src('./src/images/*')
        // 将文件输出
        .pipe(gulp.dest('./dist/images'))
    // 获取文件lib
    gulp.src('./src/lib/*')
        // 将文件输出
        .pipe(gulp.dest('./dist/lib'))
    callback();
})

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值