創(chuàng)建一個(gè)流,用于從文件系統(tǒng)讀取 Vinyl 對(duì)象。
注:BOMs(字節(jié)順序標(biāo)記)在 UTF-8 中沒(méi)有任何作用,除非使用 removeBOM
選項(xiàng)禁用,否則 src()
將從讀取的 UTF-8 文件中刪除BOMs。
const { src, dest } = require('gulp');
function copy() {
return src('input/*.js')
.pipe(dest('output/'));
}
exports.copy = copy;
src(globs, [options])
參數(shù) | 類型 | 描述 |
---|---|---|
globs | string
array |
Globs to watch on the file system. |
options | object | 在下面的選項(xiàng)中詳細(xì)說(shuō)明。 |
返回一個(gè)可以在管道的開(kāi)始或中間使用的流,用于根據(jù)給定的 globs 添加文件。
當(dāng) globs
參數(shù)只能匹配一個(gè)文件(如 foo/bar.js
)而且沒(méi)有找到匹配時(shí),會(huì)拋出一個(gè)錯(cuò)誤,提示 "File not found with singular glob"。若要抑制此錯(cuò)誤,請(qǐng)將 allowEmpty
選項(xiàng)設(shè)置為 true
。
當(dāng)在 globs
中給出一個(gè)無(wú)效的 glob 時(shí),拋出一個(gè)錯(cuò)誤,并顯示 "Invalid glob argument"。
對(duì)于接受函數(shù)的選項(xiàng),傳遞的函數(shù)將與每個(gè) Vinyl 對(duì)象一起調(diào)用,并且必須返回另一個(gè)列出類型的值。
名稱 | 類型 | 默認(rèn)值 | 描述 |
---|---|---|---|
buffer | boolean
function |
true | 當(dāng)為 true 時(shí),文件內(nèi)容被緩沖到內(nèi)存中。如果為false,Vinyl 對(duì)象的 contents 屬性將是一個(gè)暫停流??赡軣o(wú)法緩沖大文件的內(nèi)容。
注意:插件可能不支持流媒體內(nèi)容。 |
read | boolean
function |
true | 如果為 false,文件將不會(huì)被讀取,并且它們的 Vinyl 對(duì)象將不能通過(guò) .dest() 寫(xiě)入磁盤(pán)。 |
since | date
timestamp function |
設(shè)置時(shí),僅為自指定時(shí)間以來(lái)修改過(guò)的文件創(chuàng)建 Vinyl 對(duì)象。 | |
removeBOM | boolean
function |
true | 如果為 true,則從 UTF-8 編碼的文件中刪除 BOM。如果為 false,則忽略 BOM。 |
sourcemaps | boolean
function |
false | 如果為 true,則在創(chuàng)建的 Vinyl 對(duì)象上啟用 sourcemaps。加載內(nèi)聯(lián) sourcemaps 并解析外部 sourcemap 鏈接。 |
resolveSymlinks | boolean
function |
true | true 時(shí),遞歸地解析鏈接到目標(biāo)的符號(hào)(symbolic)鏈接。如果為 false,則保留符號(hào)鏈接并將 Vinyl 對(duì)象的 symlink 屬性設(shè)置為原始文件的路徑。 |
cwd | string | process.cwd()
|
將與任何相對(duì)路徑相結(jié)合以形成絕對(duì)路徑的目錄。對(duì)于絕對(duì)路徑忽略。用于避免將 globs 與 path.join() 相結(jié)合。
此選項(xiàng)直接傳遞給 glob-stream。 |
base | string | 顯式地在創(chuàng)建的 Vinyl 對(duì)象上設(shè)置 base 屬性。詳情請(qǐng)參見(jiàn) API Concepts.
此選項(xiàng)直接傳遞給 glob-stream。 |
|
cwdbase | boolean | false | 如果為 true,cwd 和 base 選項(xiàng)應(yīng)該對(duì)應(yīng)起來(lái)。
此選項(xiàng)直接傳遞給 glob-stream。 |
root | string | 解析 globs 的根路徑.
此選項(xiàng)直接傳遞給 glob-stream。 |
|
allowEmpty | boolean | false | 當(dāng)為 false 時(shí),只能匹配一個(gè)文件的 globs (如 foo/bar.js )如果沒(méi)有找到匹配的文件,就會(huì)引發(fā)一個(gè)錯(cuò)誤。如果為 true 的,則不會(huì)報(bào)錯(cuò)。
此選項(xiàng)直接傳遞給 glob-stream。 |
uniqueBy | string
function |
'path'
|
通過(guò)比較字符串屬性名或函數(shù)的結(jié)果,從流中刪除重復(fù)項(xiàng)。
注意:當(dāng)使用函數(shù)時(shí),函數(shù)接收流數(shù)據(jù)(對(duì)象包含 cwd 、base 、path 屬性)。 |
dot | boolean | false | 如果為 true,請(qǐng)將 globs 與 .gitignore 等點(diǎn)文件進(jìn)行比較。
此選項(xiàng)直接傳遞給 node-glob。 |
silent | boolean | true | 如果為 true,則禁止在 stderr 上打印警告。
注意: 此選項(xiàng)直接傳遞給 node-glob,但默認(rèn)為 true 而不是 false 。 |
mark | boolean | false | 如果為 true,將向目錄匹配項(xiàng)追加一個(gè) / 字符。通常不需要,因?yàn)槁窂绞窃诠艿乐幸?guī)范化的
此選項(xiàng)直接傳遞給 node-glob。 |
nosort | boolean | false | 如果為 true,禁用對(duì) glob 結(jié)果排序。
此選項(xiàng)直接傳遞給 node-glob。 |
stat | boolean | false | 如果為 true, fs.stat() 在所有的結(jié)果上被調(diào)用。這增加了額外的開(kāi)銷,通常不應(yīng)該使用。
此選項(xiàng)直接傳遞給 node-glob。 |
strict | boolean | false | 如果為 true,如果在嘗試讀取目錄時(shí)遇到意外問(wèn)題,將拋出錯(cuò)誤。
此選項(xiàng)直接傳遞給 node-glob。 |
nounique | boolean | false | 當(dāng)為 false 時(shí),可以防止結(jié)果集中出現(xiàn)重復(fù)的文件。
此選項(xiàng)直接傳遞給 node-glob。 |
debug | boolean | false | 如果為 true,調(diào)試信息將被記錄到命令行。
此選項(xiàng)直接傳遞給 node-glob。 |
nobrace | boolean | false | 如果為 true,避免擴(kuò)大大括號(hào)集合 - 例如 {a,b} 或 {1..3} .
此選項(xiàng)直接傳遞給 node-glob。 |
noglobstar | boolean | false | 如果為 true,將雙星(** ) glob 字符視為單星(* ) glob 字符
此選項(xiàng)直接傳遞給 node-glob。 |
noext | boolean | false | 如果為 true,避免匹配 extglob 模式 - 例如 +(ab) .
此選項(xiàng)直接傳遞給 node-glob。 |
nocase | boolean | false | 如果為 true,則執(zhí)行不區(qū)分大小寫(xiě)的匹配。
注意: 在不區(qū)分大小寫(xiě)的文件系統(tǒng)上,默認(rèn)情況下,non-magic 模式將被匹配。 此選項(xiàng)直接傳遞給 node-glob。 |
matchBase | boolean | false | 如果true 并且 globs 不包含任何 / 字符,遍歷所有目錄并匹配該 glob —— *.js 將被視為等同于 **/*.js 。
此選項(xiàng)直接傳遞給 node-glob。 |
nodir | boolean | false | 若要僅匹配目錄,glob 請(qǐng)以 / 結(jié)束。
此選項(xiàng)直接傳遞給 node-glob。 |
ignore | string
array |
從匹配中排除。這個(gè)選項(xiàng)與否定的(negated) globs 組合在一起。
注意: 無(wú)論其他設(shè)置如何,這些 globs 總是與點(diǎn)文件匹配。
此選項(xiàng)直接傳遞給 node-glob。 |
|
follow | boolean | false | 如果為 true,在展開(kāi) ** globs 時(shí)將遍歷符號(hào)鏈接目錄。
注意: 這可能導(dǎo)致循環(huán)鏈接出現(xiàn)問(wèn)題。 此選項(xiàng)直接傳遞給 node-glob。 |
realpath | boolean | false | 如果為 true,fs.realpath() 在所有的結(jié)果上調(diào)用。這可能導(dǎo)致懸掛式(dangling)鏈接。
此選項(xiàng)直接傳遞給 node-glob。 |
cache | object | 之前生成的緩存對(duì)象——避免了一些文件系統(tǒng)調(diào)用。
此選項(xiàng)直接傳遞給 node-glob。 |
|
statCache | object | 之前生成的 fs.Stat 緩存——避免了一些文件系統(tǒng)調(diào)用。
此選項(xiàng)直接傳遞給 node-glob。 |
|
symlinks | object | 之前生成的符號(hào)鏈接緩存——避免了一些文件系統(tǒng)調(diào)用。
此選項(xiàng)直接傳遞給 node-glob。 |
|
nocomment | boolean | false | 當(dāng)為 false 時(shí),將 glob 開(kāi)頭的 # 字符視為注釋。
此選項(xiàng)直接傳遞給 node-glob。 |
資源映射支持直接構(gòu)建到 src()
和 dest()
中,但是默認(rèn)情況下是禁用的。使其能夠生成內(nèi)聯(lián)或外部資源映射。
內(nèi)聯(lián)資源映射:
const { src, dest } = require('gulp');
const uglify = require('gulp-uglify');
src('input/**/*.js', { sourcemaps: true })
.pipe(uglify())
.pipe(dest('output/', { sourcemaps: true }));
外部資源映射:
const { src, dest } = require('gulp');
const uglify = require('gulp-uglify');
src('input/**/*.js', { sourcemaps: true })
.pipe(uglify())
.pipe(dest('output/', { sourcemaps: '.' }));
更多建議: