gulp :常用api

 

前提: 下载gulp 第三方 导入以后使用

1.gulp.task()

语法: gulp.task(任务名称,任务处理函数)

作用: 创建一个基于流的任务

例子:gulp.task('htmlHandler',function(){

//找到html源文件,进行压缩,打包 放入指定目录

})

2.gulp.src()

语法 gulp.src(路径信息)

作用 找到源文件

书写方式

  1. gulp.src('./a/b.html')

    找到指定一个文件

    2. gulp.src('./a/*.html')

    找到指定目录下 指定后缀的文件

    3. gulp.src('./a/**')

    找到指定目录下的所有文件

    4. gulp.src('./a/**/*')

    找到a目录下所有子目录里面的所有文件

    5. gulp.src('./a/**/*.html')

    找到a目录下所有子目录里面的所有.html文件

 

3.gulp.dest()

语法:gulp.dest(路径信息)

作用 把一个内容放进指定目录内

例子 gulp.dest('./abc'):把接收到的内容放到abc目录

 

4.gulp.watch()

语法 gulp.watch(路径信息,任务名称)

作用 监控指定路径下的文件,一旦发现变化,重新执行后面的任务

例子 gulp.watch('./src/pages/*.html',htmlHandler)

当指定目录下html 文件发生变化,就会执行htmlHandler这个任务

5.gulp.series()

语法 gulp.series(任务1,任务2,任务3,...)

作用 逐个执行多个任务,结束👉开始

 

6.gulp.parallel()

语法 gulp.parallel(任务1,任务2,任务3,...)

作用 同时开始多个任务

 

7.pipe

管道函数

所有的gulp API 都是基于流

接受当前流,进入下一个流过程的管道函数

例子:gulp.src().pipe(压缩任务).pipe(转码).pipe(gulp.dest('abc'))

 

4 gulp常用插件

gulp的各种插件就是用来执行各种各样的压缩混淆转码任务

 

1.gulp-cssmin

下载npm i gulp-cssmin -D 导入 const cssmin =require('gulp-cssmin')

得到一个处理流文件的函数

直接在管道函数里面执行

2.gulp-autoprefixer

下载:npm i gulp-autoprefixer -D

导入 const autoprefixer = require('gulp-autoprefixer')

得到一个处理流文件的函数

直接在管道函数里面使用,需要传递参数

{browers:[要兼容的浏览器]}

3.gulp-sass

下载 npm i gulp-sass -D

很容易报错

需要依赖另一个第三方 node-sass

node-sass很难下载成功

以前都是在一个地方下载,node-sass自己有一个下载地址

如果不对下载地址单独配置 很容易失败

解决:单独配置一个node-sass地址

下载node-sass 单独地址下载,其他东西统一地址

node-sass单独下载地址

set SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/

单独配置下载一个地址 只有下载 node-sass会使用

 

过程:

1 执行set SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/

2 npm i node-sass -D

3 npm i gulp-sass -D

导入:

const sass = require('gulp-sass')

导入后得到一个可以处理流文件的函数,直接在管道函数里面执行就可以

 

4gulp-uglify

把 js文件压缩的

下载 : npm i -D gulp-uglify

导入: const uglify = require('gulp-uglify')

得到一个可以处理流文件的函数,直接在管道函数中使用

注意:不能写ES6语法 一旦有了ES6语法 就会报错

 

5.gulp-babel

专门ES6转ES5的插件

gulp-babel版本

@7 大部门使用在gulp@3里面

@8 大部分使用在gulp@4里面

下载:

gulp-babel 需要依赖另外两个包 我们需要一起下载

另外两个包:@babel/core @babel/preset-env

导入:

只要导入一个包就行了,他会自动导入另外两个包

const babel =require('gulp-babel')

导入以后得到一个可以处理文件的函数

直接再管道函数内部使用,需要传递参数

 

6 gulp-htmlmin

下载:

npm i -D gulp-htmlmin

导入:

const htmlmin = require('gulp-htmlmin')

导入以后得到一个可以处理文件的函数

直接再管道函数内部使用,需要传递参数

 

7 del

下载:

npm i -D del

作用-删除文件目录

导入:

const del = require('del')

导入后得到一个函数 直接使用传递参数就行

8 gulp-webserver

启动一个基于node书写的服务器

下载:

npm i -D gulp-webserver

导入:

const webserver =require('gulp-webserver')

导入以后得到一个 处理流文件的函数

在管道函数内直接调用就可以,需要传递参数

 

9 gulp-file-include

作用 在一个html页面里面导入一个html片段

下载:

npm i -D gulp-file-include

导入:

const fileInclude = require('gulp-file-include')

导入以后得到一个 处理流文件的函数

在管道函数内直接调用就可以,需要传递参数

 

 

5 gulp 打包组件

场景

把重复的位置单独拿出来,写成一个html片段

单独拿出来的片段可以包含css和js

压缩html 的时候

能再固定位置 把写好的html片段引入进来

一段可以包含(css/js)一整套html 结构片段

把页面的每一部分分成一段一段的html片段

最后组装再一起

posted @ 2021-09-22 16:04  养只猫叫土豆  阅读(54)  评论(0编辑  收藏  举报