gulp之插件、监控、api使用

一、gulp插件的使用

    |--插件的实质:gulp插件的实质是Node转换流,它封装了-通过管道(pipeline)转换文件的常见功能。
    |--使用方法:使用.pipe()方法,放在.src()和dest()之间,他们可以更改经过流的每一个文件的文件名、
    元数据或文件内容。
    |--gulp的插件有很多,可在npm进行查找,每一个插件只完成指定的工作,可以把很多插件组合一起使用。
    |--安装插件:npm install --save-dev 插件名
    |--示例1:
        |--安装插件:压缩文件(gulp-uglify)和文件重命名(gulp-rename)插件

安装压缩文件插件
安装重命名插件
package.json

        |--压缩指定js文件,并将压缩和修改扩展名后的js文件存放在指定文件夹下:

压缩一个自己封装的ajax.js文件
报错!!!!!!why

        |--看看我要压缩的文件ajax.js,为什么要弄一个错误案例,因为涉及到另一个插件,就顺便解决一下。

ajax.js

        |--因为在es5环境中用到了es6或es7语法,就会报错,安装插件babel模块,进行解决。

安装babel模块
修改后的gulpfile.js

        |--执行gulp命令,结果:

压缩、重命扩展名成功!

    |--示例2:条件插件gulp-if,作用是因为插件的操作不应该针对特定文件类型,因此你可能需要使用像
    gulp-if插件来完成转换某些文件的操作。
        |--安装gulp-if插件:

安装gulp-if

        |--在同一个管道下,处理js和css文件,通过条件判断只压缩css文件
            |--安装压缩css插件

压缩css插件

            |--引入压缩css插件

引入

            |--使用gulp-if和gulp-clean-css组合处理,判断只处理css文件,对css文件进行压缩

判断并压缩css

            |--结果:

压缩成功
没有都js操作,但是生成到了新目录

二、文件监控

    |--定义:gulp的api提供了watch()方法,利用文件系统的监测程序(file system watcher)将globs和任务task
    进行关联。对匹配glob的文件进行监控,如果有文件被修改了就会执行关联的任务。如果被执行的task没有
    触发异步完成信号,它将永远不会再运行了。
    |--用法:

可以只关联一个任务,或任务组合

    |--注意:
        |--1.不能监控同步任务,因为你将同步任务关联到监控程序,则无法确定任务的完成情况,任务将不会再
           次运行(假定当前正在运行)。
        |--2.调用watch()之后,关联的任务不会立即执行,而是等到第一次文件修改后才执行,如果需要第一次
           修改文件之前执行,也就是调用watch立即执行,设置watch('src/*.js',{ignoreInitial:false},task)
        |--3.watch() 方法能够保证当前执行的任务不会再次并发执行。当文件监控程序关联的任务正在运行时又有
           文件被修改了,那么所关联任务的这次新的执行将被放到执行队列中等待,直到上一次关联任务执行完
           之后才能运行。每一次文件修改只产生一次关联任务的执行并放入队列中。如果想要禁用队列,设置:
           watch('src/*.js',{queue:false},task)
        |--文件更改之后,只有经过 200 毫秒的延迟之后,文件监控程序所关联的任务才会被执行。这是为了避
           免在同使更改许多文件时(例如查找和替换操作)过早启动任务(taks)的执行。如果需要修改延迟
            时间,设置: watch('src/*.js',{delay:2000},task),单位毫秒。
    |--可监控的事件:
        |--1.默认只要创建、更改、删除文件,文件监控程序就会执行关联任务。
        |--2.如果需要使用不同事件,可以再watch方法中传递events参数:
            |--add
            |--addDir
            |--change
            |--unlink
            |--unlinkDir
            |--ready
            |--error
            |--all:除ready和error意外的所有事件。

三、gulp Api及常用插件使用

    |--Task1:将less文件转为css文件。
        |--安装插件:gulp-less

安装gulp-less

        |--使用:

gulpfile.js

        |--效果:

处理前
处理后

    |--Task2:复制文件

复制文件
文件目录

    |--Task3:压缩js文件
        |--安装插件gulp-uglify:压缩js插件

安装gulp-uglify插件

        |--安装插件gulp-rename:安装重命名文件,常用于修改压缩后文件的扩展名(.min.js)

安装gulp-rename插件

        |--安装插件gulp-babel模块:用于支持es6,7,8语法:

安装gulp-babel模块

        |--插件安装完毕:

准备就绪

        |--创建压缩js的task:

gulpfile.js中引入用到的插件
压缩js任务

        |--输出结果:

js压缩成功!

    |--Task4:压缩css文件
        |--安装压缩css插件:gulp-clean-css

安装压缩css插件

        |--创建任务:

引入插件
创建压缩css任务

        |--输出结果:

压缩成功!!

    |--添加监听:添加监听,针对src/index.less进行一个监听,当有修改的时候,执行less转css操作。

监听index.less

        |--修改index.less文件内容:

添加h2代码块

        |--自动指定了task1,对less进行了转换为css:

转换成功

    |--Task5:图片压缩
        |--安装图片压缩插件:下面都可以
            |--gulp-tinypng-nokey
            |--gulp-imagemin
            |--gulp-tony-imgmin:以这个举例

安装

        |--创建任务:

引入插件
压缩图片任务

        |--输出结果:

压缩后

    |--Task6:压缩html文件
        |--安装插件:gulp-htmlmin

安装插件

        |--创建任务:去除空白

压缩html任务

        |--执行结果:

文件内容
压缩前大小
压缩后大小

    |--Task7:压缩处理后的文件,生成zip
        |--安装插件:gulp-zip

安装gulp-zip插件

        |--创建任务:压缩整个文件夹,生成zip文件

生成zip文件

        |--输出结果:

zip文件
解压缩后-common下所有文件

    |--这里罗列的就是一些简单的插件,和常用的几个任务,主要是让大家对gulp有个简单的熟知,内容都比较简单,只写个初学者,当然我也是初学者,希望可以一起交流。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,383评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,522评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,852评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,621评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,741评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,929评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,076评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,803评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,265评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,582评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,716评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,395评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,039评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,027评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,488评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,612评论 2 350

推荐阅读更多精彩内容

  • gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学...
    井皮皮阅读 1,292评论 0 10
  • 1、gulp的安装 首先确保你已经正确安装了nodejs环境。然后以全局方式安装gulp: npm install...
    F_imok阅读 2,365评论 1 11
  • gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学...
    小裁缝sun阅读 923评论 0 3
  • 在现在的前端开发中,前后端分离、模块化开发、版本控制、文件合并与压缩、mock数据等等一些原本后端的思想开始...
    Charlot阅读 5,433评论 1 32
  • 对网站资源进行优化,并使用不同浏览器测试并不是网站设计过程中最有意思的部分,但是这个过程中的很多重复的任务能够使用...
    懵逼js阅读 1,061评论 0 8