node?NPM庫glob通配符匹配文件名minimatch模式匹配字符串學(xué)習(xí)
NPM酷庫
每天兩分鐘,了解一個流行NPM庫。
經(jīng)常,我們的程序需要對磁盤文件進(jìn)行管理,就需要讀取磁盤上的文件列表,然后可能會需要判斷文件夾或文件名,還可能需要遞歸掃描子目錄。
glob
今天我們要了解的庫 glob,就是專門用來掃描磁盤文件,并返回我們需要的文件類型。
const glob = require("glob")
glob("**/*.js", function (error, files) {
// files 就是我們得到的文件的列表
})上述代碼中,我們會遞歸查找當(dāng)前目錄下的所有.js 文件,因為我們使用了 **/*.js 通配符做查找條件。
glob 支持的通配符模式
glob 支持強大的匹配規(guī)則,但是要注意glob的匹配規(guī)則并不是正則表達(dá)式,詳細(xì)支持如下:
*匹配0到多個字符?匹配一個字符[...]匹配一個字符列表,類似正則表達(dá)式的字符列表!(pattern|pattern|pattern)反向匹配括號內(nèi)的模式?(pattern|pattern|pattern)匹配0或1個括號內(nèi)的模式+(pattern|pattern|pattern)匹配至少1個括號內(nèi)的模式*(pattern|pattern|pattern)匹配0到多個括號內(nèi)的模式@(pattern|pat*|pat?erN)精確匹配括號內(nèi)的模式**匹配0到多個子目錄,遞歸匹配子目錄
其他特性
除下上文中的異步接口,glob還支持 glob.sync() 同步接口,另外,glob還支持大量的參數(shù)選項,比如cwd,root 等等,具體請參考官方文檔。
參考文檔
glob: https://github.com/isaacs/nod...
minimatch
glob 的基礎(chǔ)庫: minimatch,用來模式匹配字符串的庫。
其實,glob庫支持的的各種模式都來自于minimatch。
minimatch 的用法
const minimatch = require("minimatch")
minimatch("bar.foo", "*.foo") // true
minimatch("bar.foo", "*.bar") // false
minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // trueminimatch 支持的通配符模式
要注意,minimatch的匹配模式并非是正則表達(dá)式,具體支持如下:
*匹配0到多個字符?匹配一個字符[...]匹配一個字符列表,類似正則表達(dá)式的字符列表!(pattern|pattern|pattern)反向匹配括號內(nèi)的模式?(pattern|pattern|pattern)匹配0或1個括號內(nèi)的模式+(pattern|pattern|pattern)匹配至少1個括號內(nèi)的模式*(pattern|pattern|pattern)匹配0到多個括號內(nèi)的模式@(pattern|pat*|pat?erN)精確匹配括號內(nèi)的模式**匹配0到多個子目錄,遞歸匹配子目錄
參考資料
https://github.com/isaacs/nod...
https://github.com/isaacs/min...
https://en.wikipedia.org/wiki...
以上就是node NPM庫glob通配符匹配文件名minimatch模式匹配字符串學(xué)習(xí)的詳細(xì)內(nèi)容,更多關(guān)于node NPM庫glob minimatch的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Node.js 實現(xiàn)簡單的無侵入式緩存框架的方法
這篇文章主要介紹了Node.js 實現(xiàn)簡單的無侵入式緩存框架的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07
Node.js全局處理響應(yīng)并進(jìn)行異常管理
這篇文章主要為大家介紹了Node.js全局處理響應(yīng)并進(jìn)行異常管理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Node.js報錯信息Error:?Cannot?find?module?'XXX'問題及解
這篇文章主要介紹了Node.js報錯信息Error:?Cannot?find?module?'XXX'問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10
nodejs轉(zhuǎn)換音頻文件格式并壓縮導(dǎo)出zip格式(vscode語音插件開發(fā))
FFmpeg是一套開源的音視頻處理工具,通俗地講,可以對音視頻文件進(jìn)行剪切、拼接、水印、轉(zhuǎn)碼等處理,這篇文章主要介紹了nodejs轉(zhuǎn)換音頻文件格式并壓縮導(dǎo)出zip格式(vscode語音插件開發(fā)),需要的朋友可以參考下2023-05-05
NodeJs從頭到尾構(gòu)建一個Typescript項目的全過程
前端開發(fā)中的各種腳手架對TypeScript支持已經(jīng)很完善了,這篇文章主要介紹了NodeJs從頭到尾構(gòu)建一個Typescript項目的全過程,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04

