成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

用gulp-bufferify快速創(chuàng)建你的gulp插件

XUI / 565人閱讀

摘要:舉一個(gè)栗子通過上面這段代碼,可以快速替換所有文檔中的為。當(dāng)前的,擁有等有用的信息。不過當(dāng)你使用的時(shí)候情況不同,執(zhí)行就相當(dāng)于告訴,你的插件將會以異步方式運(yùn)行,所以這個(gè)時(shí)候你的新的將不會被采納,知道你使用。

gulp-bufferify是我之前寫的一個(gè)gulp插件,其實(shí)它沒有實(shí)際的功能性用處,但是利用它可以快速實(shí)現(xiàn)一個(gè)gulp插件。舉一個(gè)栗子:

import bufferify from "gulp-bufferify"
gulp.src("./**/*.txt")
    .pipe(bufferify(content => content.replace(/sam/g, "tom")))
    .pipe(gulp.dest("."))

通過上面這段gulp代碼,可以快速替換所有txt文檔中的sam為tom??梢哉f,每一個(gè)gulp-bufferify就是一個(gè)插件,你可以利用它完成你想要的功能。

我們來看看他的使用方法:

let factory = (content, file, context, notifier) => {}
bufferify(factory)

工廠函數(shù)factory有四個(gè)參數(shù):

content

經(jīng)過toString()的文檔內(nèi)容,一般在處理文本類型的文檔時(shí)可以直接使用。

file

當(dāng)前buffer的file,擁有file.path, file.contents, file.clone()等有用的信息。

context

管道中的上下文,相當(dāng)于stream中的this??梢酝ㄟ^它實(shí)現(xiàn)文件的添加修改和刪除。具體的話,你還得知道stream的相關(guān)知識。

notifier

用在異步處理中,通知生成器,使用方法如下:

.pipe(bufferify((content, file, context, notifier) => {
    let callback = notifier()
    setTimeout(() => callback(), 3000)
}))

上面這段代碼是異步處理的,當(dāng)callback()執(zhí)行時(shí),stream才會進(jìn)入下一個(gè)管道。

工廠函數(shù)的返回值應(yīng)該是新的content,當(dāng)你返回一個(gè)新的content的時(shí)候,這個(gè)buffer的內(nèi)容就會被新的content替換(buffer文件是文本文件)。

而如果你返回的值為非真時(shí),原始的content將被使用。

不過當(dāng)你使用notifier的時(shí)候情況不同,執(zhí)行notifier()就相當(dāng)于告訴gulp-bufferify,你的插件將會以異步方式運(yùn)行,所以這個(gè)時(shí)候你return的新的content將不會被采納,知道你使用callback()。callback的使用方法和though2的callback使用方法是一樣的,假如你修改了buffer文件,必須采用如下的形式:

.pipe(bufferify((content, file, context, notifier) => {
    let callback = notifier()
    let newcontent = content.replace("you", "me")
    file.contents = new Buffer(newcontent)
    setTimeout(() => callback(null, file), 3000)
}))

在gulp-bufferify中,真正改變stream的,主要是bufferify函數(shù)的返回值和context,返回新的content將改變file.contents,而使用context則可以在stream中新增文件。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/82449.html

相關(guān)文章

  • 20分鐘gulp快速入門

    摘要:所以出現(xiàn)了各種前端構(gòu)建化工具也應(yīng)運(yùn)而生等已經(jīng)成為現(xiàn)在前端開發(fā)工程師的必備技能之一。結(jié)語今天的分享就告一段落啦希望能對大家有所幫助。 在互聯(lián)網(wǎng)告訴發(fā)展的今天,自node出現(xiàn)后,我們前端也越來越大(心里美美噠~),同樣帶來的Web業(yè)務(wù)日益復(fù)雜化和多元化,模式也都想webPage模式轉(zhuǎn)向webApp模式,拼幾個(gè)頁面搞幾個(gè)jquery的插件就能搞一個(gè)完成一個(gè)項(xiàng)目的日子已經(jīng)是很久遠(yuǎn)的曾經(jīng)了,而且...

    RichardXG 評論0 收藏0
  • 做一個(gè)合格的前端,gulp資源大集合

    摘要:承接前一篇做一個(gè)合格的前端,自動化構(gòu)建工具入門教程故而整理了如下插件資源大全。接下來我會逐一開源觀點(diǎn)網(wǎng)開發(fā)過程中的前后端技術(shù),如全文索引自定義富文本編輯器圖片上傳壓縮水印等等。 承接前一篇《做一個(gè)合格的前端,gulp自動化構(gòu)建工具入門教程》故而整理了如下gulp插件資源大全。**【我的新作觀點(diǎn)網(wǎng):http://www.guandn.com (觀點(diǎn)網(wǎng)是一個(gè)獵獲新奇、收獲知識、重在獨(dú)立思考...

    Baoyuan 評論0 收藏0
  • Glup快速入門整理

    摘要:下載打包插件引入引入的插件是個(gè)方法,必須記住調(diào)用。神來之筆其他的插件不用再引入了使用方法所有的插件用引出,其他插件的方法名統(tǒng)一為插件的功能名字即插件名字的最后一部分如將轉(zhuǎn)換為將轉(zhuǎn)換為的文件輸出到下實(shí)時(shí)刷新 Gulp介紹 中文主頁: http://www.gulpjs.com.cn/ gulp是與grunt功能類似的前端項(xiàng)目構(gòu)建工具, 也是基于Nodejs的自動任務(wù)運(yùn)行器 能自動化...

    HmyBmny 評論0 收藏0
  • Glup快速入門整理

    摘要:下載打包插件引入引入的插件是個(gè)方法,必須記住調(diào)用。神來之筆其他的插件不用再引入了使用方法所有的插件用引出,其他插件的方法名統(tǒng)一為插件的功能名字即插件名字的最后一部分如將轉(zhuǎn)換為將轉(zhuǎn)換為的文件輸出到下實(shí)時(shí)刷新 Gulp介紹 中文主頁: http://www.gulpjs.com.cn/ gulp是與grunt功能類似的前端項(xiàng)目構(gòu)建工具, 也是基于Nodejs的自動任務(wù)運(yùn)行器 能自動化...

    jhhfft 評論0 收藏0
  • Glup快速入門整理

    摘要:下載打包插件引入引入的插件是個(gè)方法,必須記住調(diào)用。神來之筆其他的插件不用再引入了使用方法所有的插件用引出,其他插件的方法名統(tǒng)一為插件的功能名字即插件名字的最后一部分如將轉(zhuǎn)換為將轉(zhuǎn)換為的文件輸出到下實(shí)時(shí)刷新 Gulp介紹 中文主頁: http://www.gulpjs.com.cn/ gulp是與grunt功能類似的前端項(xiàng)目構(gòu)建工具, 也是基于Nodejs的自動任務(wù)運(yùn)行器 能自動化...

    ysl_unh 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<