最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何編寫javascript的gulp插件

 更新時間:2017年02月07日 08:37:29   作者:猴子  
本文主要介紹了使用PMD進行代碼審查的方法,具有很好的參考價值,下面跟著小編一起來看下吧

很久以前,我們在"細說gulp"隨筆中,以壓縮JavaScript為例,詳細地講解了如何利用gulp來完成前端自動化。

再來短暫回顧下,當時除了借助gulp之外,我們還利用了第三方gulp插件”gulp-uglify”,來達到壓縮JavaScript文件的目的。

代碼如下:

今兒,我們的重點就是,自己也來實現一個gulp插件。

正文

其實,如果只是單純地想要編寫一個gulp插件不難,可以借助through2或者through-gulp來編寫(through-gulp是基于through2開發(fā)的)。

例如,我們想要接下來即將編寫的插件(暫取名為modify),實現這樣的功能:將指定html文件中的{{…}},全部替換成'Monkey 2 Dorie'。

如下:

下面我們將利用through2以及through-gulp一一道來。

**through2**

'use strict'
var through2 = require('through2');
module.exports = modify;
function modify(){
 return through2.obj(function(file, encoding, cb){
 //如果文件為空,不做任何操作,轉入下一個操作,即下一個pipe
 if(file.isNull()){
 console.log('isNull');
 this.push(file);
 return cb();
 }
 //插件不支持對stream直接操作,拋出異常
 if(file.isStream()){
 console.log('isStream');
 this.emit('error');
 return cb();
 }
 //內容轉換,處理好后,再轉成Buffer形式
 var content = versionFun(file.contents.toString());
 file.contents = new Buffer(content);
 //下面這兩句基本是標配,可參考through2的API
 this.push(file);
 cb();
 });
}
function versionFun(data){
 return data.replace(/{{something}}/, ' Monkey 2 Dorie ');
}

**through-gulp**

'use strict'
var through = require('through-gulp');
module.exports = modify;
function modify(){
 var stream = through(function(file, encoding, callback){
 //如果文件為空,不做任何操作,轉入下一個操作,即下一個pipe
 if(file.isNull()){
 console.log('file is null!');
 this.push(file);
 return callback(); 
 }
 //插件不支持對stream直接操作,拋出異常
 if(file.isStream()){
 console.log('file is stream!');
 this.emit('error');
 return callback(); 
 }
 //內容轉換,處理好后,再轉成Buffer形式
 var content = versionFun(file.contents.toString('utf-8'));
 file.contents = new Buffer(content, 'utf-8');
 this.push(file);
 callback();
 }, function(callback){
 console.log('處理完畢!');
 callback();
 });
 return stream;
}
function versionFun(data){
 return data.replace(/{{something}}/, ' Monkey 2 Dorie ');
}

詳情代碼見github.

拓展閱讀

[1]、through-gulp

[2]、gulp規(guī)范

[3]、gulp高級技巧

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關文章

  • Spring Boot外部化配置實戰(zhàn)解析

    Spring Boot外部化配置實戰(zhàn)解析

    這篇文章主要介紹了Spring Boot外部化配置實戰(zhàn)解析,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • Mybatis插入數據后自增id獲取方式

    Mybatis插入數據后自增id獲取方式

    在MyBatis中,獲取自增主鍵可以通過useGeneratedKeys屬性或selectKey節(jié)點實現,useGeneratedKeys設置時,需設置keyProperty指定主鍵字段,數據庫表也要相應設置,selectKey節(jié)點可在插入操作后,通過特定SQL查詢獲得主鍵
    2024-09-09
  • JXLS根據模板導出Excel實例教程

    JXLS根據模板導出Excel實例教程

    這篇文章主要為大家詳細介紹了JXLS根據模板導出Excel實例教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • SpringBoot中webSocket實現即時聊天

    SpringBoot中webSocket實現即時聊天

    這篇文章主要介紹了SpringBoot中webSocket實現即時聊天,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • spring聲明式事務@Transactional底層工作原理

    spring聲明式事務@Transactional底層工作原理

    這篇文章主要為大家介紹分析spring聲明式事務@Transactional底層工作原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-02-02
  • Java實現的求逆矩陣算法示例

    Java實現的求逆矩陣算法示例

    這篇文章主要介紹了Java實現的求逆矩陣算法,涉及java基于數組的矩陣遍歷與運算相關操作技巧,需要的朋友可以參考下
    2017-09-09
  • javaWeb使用驗證碼實現簡單登錄

    javaWeb使用驗證碼實現簡單登錄

    這篇文章主要為大家詳細介紹了javaWeb使用驗證碼實現簡單登錄,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • 深入淺出Java mvc_動力節(jié)點Java學院整理

    深入淺出Java mvc_動力節(jié)點Java學院整理

    這篇文章主要為大家詳細介紹了MVC的基礎知識,MVC是一個框架模式,它強制性的使應用程序的輸入、處理和輸出分開,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • SpringBoot啟動訪問localhost:8080報錯404的解決操作

    SpringBoot啟動訪問localhost:8080報錯404的解決操作

    這篇文章主要介紹了SpringBoot啟動訪問localhost:8080報錯404的解決操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • Java利用iTextPDF庫實現制作PDF表格模板并填充數據

    Java利用iTextPDF庫實現制作PDF表格模板并填充數據

    這篇文章主要為大家詳細介紹了如何通過Java的iTextPDF庫制作一個PDF表格模板并填充數據,文中的示例代碼講解詳細,感興趣的小伙伴快跟隨小編一起學習一下吧
    2023-12-12

最新評論

勐海县| 界首市| 巴楚县| 山东省| 贵州省| 阳城县| 大城县| 桂东县| 宁明县| 永福县| 卓尼县| 越西县| 城口县| 永城市| 固始县| 通化市| 绥芬河市| 蒙城县| 德兴市| 延寿县| 无锡市| 宁夏| 台南县| 凭祥市| 图们市| 沁源县| 达州市| 葫芦岛市| 古浪县| 福鼎市| 镇原县| 安阳市| 西贡区| 亳州市| 德江县| 彭泽县| 湄潭县| 广平县| 汝阳县| 蓝田县| 砀山县|