Gulp 官方文件是這麼形容 globs 的:
A glob is a string of literal and/or wildcard characters used to match filepaths. Globbing is the act of locating files on a filesystem using one or more globs.
glob 是由普通字符和 / 或通配字符組成的字符串,用于匹配文件路徑。可以利用一個或多個 glob 在文件系統中定位文件。
也就是說,globs 這個字符串,主要用途就是表示檔案的路徑。在前面的 src()
與 dest()
API 中,第一個參數就是用來放 globs 這個代表檔案路徑的字符串。
類似於正則表達式,globs 也有一些特殊的匹配符號。以下簡單列出常用的符號。
\\
*
星號本來是有其他匹配意義的,但透過 \\
兩個斜線就變成只是個星號而已。
'glob_with_uncommon_\\*_character.js'
*
*
星號可以用來匹配該目錄下所有的檔名。例如,*.js
就可以匹配到 index.js
,但無法匹配到 all.css
、script/main.js
'*.js'
**
如果說 *
經常用在匹配檔名的話,**
則經常用在匹配目錄名稱。例如,scripts/**/*.js
這個 globs,可以匹配到 scripts/index.js
、scripts/nested/index.js
。
!
src()
、dest()
等 API 第一個參數除了能接受 globs 字串外,也能接受由 globs 字串所組成的陣列。以底下的例子來說,除了在 node_modules/
資料夾底下的 js 外,其他所有路徑底下的 js 都會被匹配到。
['**/*.js', '!node_modules/']
本文是「以複製檔案為例」系列的第三篇,簡單提及了 globs 是什麼以及一些匹配字串的符號。明天將會去瞭解 node.js 中的 stream 觀念以及它的 pipe() API。
官方
其他