程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 如何編寫javascript的gulp插件

如何編寫javascript的gulp插件

編輯:關於JAVA

如何編寫javascript的gulp插件。本站提示廣大學習愛好者:(如何編寫javascript的gulp插件)文章只能為提供參考,不一定能成為您想要的結果。以下是如何編寫javascript的gulp插件正文


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

再來長久回憶下,事先除了借助gulp之外,我們還應用了第三方gulp插件”gulp-uglify”,來到達緊縮JavaScript文件的目的。

代碼如下:

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

注釋

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

例如,我們想要接上去行將編寫的插件(暫取名為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標准

[3]、gulp初級技巧

以上就是本文的全部內容,希望本文的內容對大家的學習或許任務能帶來一定的協助,同時也希望多多支持!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved