一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 如何編寫javascript的gulp插件

如何編寫javascript的gulp插件

2020-08-04 12:58猴子 Java教程

本文主要介紹了使用PMD進行代碼審查的方法,具有很好的參考價值,下面跟著小編一起來看下吧

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

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

代碼如下:

如何編寫javascript的gulp插件

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

正文

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

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

如下:

如何編寫javascript的gulp插件

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

**through2**

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
'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**

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
'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規范

[3]、gulp高級技巧

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

原文鏈接:http://www.cnblogs.com/giggle/p/6344789.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 无人影院免费观看 | 亚洲电影成人 成人影院 | 九九在线精品视频 | 黄动漫车车好快的车车双女主 | 国产成人永久免费视 | 日本一卡=卡三卡免费 | 好大好爽好涨太深了小喜 | 欧美操屁股 | 欧美在线播放一区二区 | 偷偷狠狠的日日高清完整视频 | 美女扒开尿口让男生添 漫画 | 欧美黑人换爱交换乱理伦片 | 国产香蕉一区二区精品视频 | 亚洲男人天堂影院 | 亚洲国产精品无圣光一区二区 | 娇妻与老头绿文小说系列 | 国产伦精品一区二区三区免费迷 | 久久久乱码精品亚洲日韩 | 91啪在线观看国产在线 | 91在线精品老司机免费播放 | 国产情侣啪啪 | 国产伦码精品一区二区 | 欧美日韩国产精品自在自线 | 国产精品网站在线观看 | 国产亚洲精aa在线观看不卡 | 久久视频这里只精品99热在线观看 | 免费一看一级毛片人 | 亚洲视频在线免费看 | 国产精品日本亚洲777 | 朝鲜女人性猛交 | 日韩伦理在线免费观看 | 欧美日韩在线成人看片a | 日本三级免费观看 | 欧美疯狂做爰xx | 成年男人永久免费看片 | 国产在线精品99一卡2卡 | 好女孩韩剧免费观看 | 白白国产永久免费视频 | 动漫美女人物被黄漫在线看 | 91免费精品国自产拍在线可以看 | 国产精品久久久久久影视 |