自动化构建工具Gulp

Gulp基础使用

Gulp中文网 在首页面就展示了基本使用的步骤。
在这里插入图片描述

后面自己创建一个使用Gulp的用例。

首先全局安装Gulp客户端

npm install -g gulp-cli 

初始化项目

npm init --yes

在项目下安装Gulp

npm install gulp -D

在项目下新建一个gulpfile.js的Gulp入口文件。
gulpfile.js中创建一个Gulp任务

const task1 = () => {
    console.log('gulp111 tast is running');
}

module.exports = {
    task1
}

在这里插入图片描述

该任务会虽然会执行出结果但是会有报错,因为在最新Gulp中支持的是异步任务所以在任务中应该有一个回调函数。

const task1 = (callback) => {
    console.log('gulp111 tast is running');
    callback()
}

module.exports = {
    task1
}

在这里插入图片描述
在任务中还可以配置默认执行任务项,执行gulp命令时就可以不用输入任务名。

const task1 = (callback) => {
    console.log('gulp111 tast is running');
    callback()
}
const task2 = (callback) => {
    console.log('gulp222 tast is running');
    callback()
}

module.exports = {
    default:task1,
    task2    
}

在这里插入图片描述

Gulp组合任务

组合式任务可以分为并行执行和串行执行两种方式。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

并行执行

const gulp = require('gulp')
const task1 = (callback) => {
    setTimeout(() => {
        console.log('task1 is running');
        callback()
    },1000)
}
const task2 = (callback) => {
    setTimeout(() => {
        console.log('task2 is running');
        callback()
    },1000)
}
const task3 = (callback) => {
    setTimeout(() => {
        console.log('task3 is running');
        callback()
    },1000)
}
exports.p = gulp.parallel(task1,task2,task3)

在这里插入图片描述

串行执行

const gulp = require('gulp')
const task1 = (callback) => {
    setTimeout(() => {
        console.log('task1 is running');
        callback()
    },1000)
}
const task2 = (callback) => {
    setTimeout(() => {
        console.log('task2 is running');
        callback()
    },1000)
}
const task3 = (callback) => {
    setTimeout(() => {
        console.log('task3 is running');
        callback()
    },1000)
}
exports.s = gulp.series(task1,task2,task3)

在这里插入图片描述

组合任务就可以随意将任务进行排列组合进行执行。

Gulp文件操作

构建样式文件

Gulp是基于 的构建系统,所以Gulp的文件操作也是以的方式。

在这里插入图片描述

src:拿到输入的内容

pipe:管道

dest:目标

在这里插入图片描述

实现将less文件转换为css样式文件并且进行压缩后重命名操作。

在这里插入图片描述

Gulp插件可以在 Gulp官网插件查询 或者在 npm官网 查找安装。

const {src,dest} = require('gulp')
const less = require('gulp-less')
const cleancss = require('gulp-clean-css')
const rename = require('gulp-rename')
const autoprefixer = require('gulp-autoprefixer')

const style = () => {
    return src('src/style/index.less',{base:'src'})   //第二个参数为文件目录格式以src样式为准
    .pipe(less())   //less转化css
    .pipe(autoprefixer())   //解决兼容性问题
    .pipe(cleancss())   //将css代码进行格式化压缩
    .pipe(rename({'extname':'.min.css'}))    //将文件进行重新命名
    .pipe(dest('dist'))
}

module.exports = {
    style
}

在这里插入图片描述
文件目录:
在这里插入图片描述

构建脚本文件

在这里插入图片描述

安装构建js文件所需插件

在这里插入图片描述

const {src,dest} = require('gulp')
const rename = require('gulp-rename')
const babel = require('gulp-babel');
const uglify = require('gulp-uglify')

const script = () => {
    return src('src/js/index.js',{base:'src'})  //第二个参数为文件目录格式以src样式为准
    .pipe(babel({
        presets: ['@babel/env']
    }))     //代码格式化
    .pipe(uglify())     //代码压缩
    .pipe(rename({'extname':'.min.js'}))    //重命名
    .pipe(dest('dist'))
}

module.exports = {
    script
}

在这里插入图片描述
文件目录
在这里插入图片描述

构建结构文件

在这里插入图片描述

const {src,dest} = require('gulp')
const htmlmin = require('gulp-htmlmin')

const html = () => {
    return src('src/index.html')
    .pipe(htmlmin({
        collapseWhitespace:true,
        minifyCSS:true,
        minifyJS:true
    }))   //格式化html文件
    .pipe(dest('dist'))
}

module.exports = {	
    html
}

在这里插入图片描述

文件目录

在这里插入图片描述

组合构建

可以在Gulp中引入parallel方法进行异步构建。

const build = parallel(style,script,html)

在这里插入图片描述

可以实现同样的效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值