利用gulp-if用文件名為條件做過濾

最近在給公司的項(xiàng)目做版本管理,由于我們項(xiàng)目的奇葩性,框架的特性,以及我們gulpfile本身的復(fù)雜性,讓這個(gè)工作進(jìn)行得非常困難且痛苦,好在最終是解決了問題。中間各種絞盡腦汁的不盡述,把這個(gè)有參考價(jià)值的點(diǎn)拿出來跟大家分享一下。

當(dāng)時(shí)有個(gè)要做的事情是,對(duì)一個(gè)文件夾中的某些js做文件名替換,目錄結(jié)構(gòu)大致如下:

|----src
|--------test.js
|--------testTpl.js
|--------test2.js
|--------test2Tpl.js
.....
我們要執(zhí)行一個(gè)gulp任務(wù),把名字中有tpl的文件找出來做代碼內(nèi)容中的文件版本替換。這里需要對(duì)當(dāng)前目錄的文件做過濾,但是gulp的node-glob語(yǔ)法決定了它只支持目錄、文件類型的過濾。我們需要的是對(duì)文件名做過濾的東西,因此需要做條件判斷的插件。

搜索得到gulp-if,這個(gè)gulp插件給我們提供了gulp操作中條件設(shè)置的可能,官網(wǎng)的示例代碼只是做了簡(jiǎn)單的true/false的判斷來選擇性處理某些流程,比較簡(jiǎn)單。

官網(wǎng)示例代碼

condition這個(gè)函數(shù)接收file值,然后通過邏輯代碼的判斷,返回true/false就可以達(dá)到目的。但是我們這個(gè)是對(duì)文件名的判斷,遍訪資源也沒有看到這種做法的案例。最后想起gulp的path模塊是可以獲取當(dāng)前路徑的,當(dāng)然也就包括文件名啦。最終順利的用path+gulp-if對(duì)文件名的判斷,過濾掉了不需要操作的文件,完成任務(wù)。示例代碼如下:

gulp-if示例代碼

代碼應(yīng)該簡(jiǎn)單明了吧,希望能給大家一個(gè)參考。

ps:現(xiàn)在看著很簡(jiǎn)單的代碼,當(dāng)時(shí)是想了很久才想到的解決方案,也許當(dāng)時(shí)超負(fù)荷的腦子太笨,也許大家從來不認(rèn)為實(shí)現(xiàn)對(duì)文件名的過濾是什么難事,那麻煩能給我分享一下你的方法,非常感謝 (手動(dòng)萌~^v^~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在現(xiàn)在的前端開發(fā)中,前后端分離、模塊化開發(fā)、版本控制、文件合并與壓縮、mock數(shù)據(jù)等等一些原本后端的思想開始...
    Charlot閱讀 5,653評(píng)論 1 32
  • 對(duì)網(wǎng)站資源進(jìn)行優(yōu)化,并使用不同瀏覽器測(cè)試并不是網(wǎng)站設(shè)計(jì)過程中最有意思的部分,但是這個(gè)過程中的很多重復(fù)的任務(wù)能夠使用...
    懵逼js閱讀 1,160評(píng)論 0 8
  • gulpjs是一個(gè)前端構(gòu)建工具,與gruntjs相比,gulpjs無需寫一大堆繁雜的配置參數(shù),API也非常簡(jiǎn)單,學(xué)...
    依依玖玥閱讀 3,299評(píng)論 7 55
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評(píng)論 19 139
  • 1、gulp的安裝 首先確保你已經(jīng)正確安裝了nodejs環(huán)境。然后以全局方式安裝gulp: npm install...
    F_imok閱讀 2,474評(píng)論 1 11

友情鏈接更多精彩內(nèi)容