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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美特一级| 欧美老女人b| 日本ssswww大学生 | 亚洲第一二三四区 | 日韩精品一区二区三区视频 | 日韩欧美高清视频 | 亚洲四虎 | 奇米影视999 | 国产亚洲女在线精品 | 任你操视频在线观看 | 四虎免费在线观看视频 | 久久热r在线视频精品 | 91精品国产综合久久福利 | 国产美女下面流出白浆视频 | 成人免费观看www视频 | 天天舔天天干天天操 | 美女被视频网站看免费入口 | 成人免费视频一区二区 | 国产一二区视频 | 农村老妇1乱69系列小说 | 日韩欧美一区黑人vs日本人 | 色五婷婷| 欧美日韩视频在线第一区二区三区 | 欧美激情精品久久久久久不卡 | 亚洲好色网 | 亚洲精品视频导航 | 视频亚洲一区 | 97就去干 | 欧美日韩一区二区三区免费 | 日本玖玖视频 | 女老板用丝袜脚夹我好爽 | 日韩高清一区 | 国产欧美日韩视频在线观看一区二区 | 免费看麻豆视频 | 16男男gaygays | 色小孩导航| 精品国产自在现线久久 | 欧美一级欧美一级高清 | 免费精品在线视频 | 99九九国产精品免费视频 | 男人的j进入女人的j免费 |