#
Vinyl一种虚拟文件格式。当文件被 src()
读取时,会生成一个 Vinyl 对象来表示该文件,包括路径、内容和其他元数据。
可以使用 插件对 Vinyl 对象应用转换。它们还可以使用 dest()
保存在文件系统中。
在创建自己的 Vinyl 对象时,请使用外部 vinyl
模块,而不是使用 src()
生成,如下面的用法所示。
#
用法#
签名#
参数参数 | 类型 | 备注 |
---|---|---|
选项 | 对象 | 详见下文的 选项。 |
#
返回Vinyl 类的一个实例,表示一个单独的虚拟文件,详见下文的 Vinyl 实例。
#
错误当任何传递的选项不符合 实例属性定义(例如,如果 path
设置为一个数字)时,将按表中定义的抛出。
#
选项名称 | 类型 | 默认值 | 备注 |
---|---|---|---|
cwd | 字符串 | process.cwd() | 将派生相对路径的目录。将标准化并删除尾部分隔符。 |
base | 字符串 | 用于计算relative 实例属性。如果未设置,则回退到cwd 的值。通常设置为glob base。将标准化并删除尾部分隔符。 | |
path | 字符串 | 完整绝对文件路径。将标准化并删除尾部分隔符。 | |
history | 数组 | [ ] | 一个路径数组,用于预填充 Vinyl 实例的history 。通常来自从以前的 Vinyl 对象派生新的 Vinyl 对象。如果同时传递path 和history ,则将path 追加到history 。每个项目都将标准化并删除尾部分隔符。 |
stat | 对象 | fs.Stats 的一个实例,通常是在文件上调用fs.stat() 的结果。用于确定 Vinyl 对象是否表示目录或符号链接。 | |
contents | ReadableStream Buffer null | null | 文件的内容。如果contents 是一个 ReadableStream,则将其包装在一个cloneable-readable流中。 |
options
上的任何其他属性都将直接分配给 Vinyl 实例。
#
Vinyl 实例每个 Vinyl 对象实例都将具有属性和方法来访问和/或修改有关虚拟文件的信息。
#
实例属性所有内部管理的路径 - 除了 contents
和 stat
之外的任何实例属性 - 都已标准化并删除了尾随分隔符。有关更多信息,请参见 标准化和连接。
属性 | 类型 | 说明 | 抛出 |
---|---|---|---|
contents | ReadableStream Buffer null | 获取并设置虚拟文件的内容。如果设置为 ReadableStream,则将其包装在 cloneable-readable 流中。 | 如果设置为 ReadableStream、Buffer 或 null 以外的任何值。 |
stat | 对象 | 获取并设置 fs.Stats 的实例。用于确定 Vinyl 对象是否表示目录或符号链接。 | |
cwd | 字符串 | 获取并设置当前工作目录。用于推导相对路径。 | 如果设置为一个空字符串或任何非字符串值。 |
base | 字符串 | 获取并设置基本目录。用于计算 relative 实例属性。在由 src() 生成的 Vinyl 对象上将设置为 glob 基准。如果设置为 null 或 undefined ,则回退到 cwd 实例属性的值。 | 如果设置为一个空字符串或任何非字符串值(除了 null 或 undefined )。 |
path | 字符串 | 获取并设置完整绝对文件路径。设置为与当前 path 不同的值会将新路径附加到 history 实例属性。 | 如果设置为任何非字符串值。 |
history | 数组 | Vinyl 对象已分配的所有 path 值的数组。第一个元素是原始路径,最后一个元素是当前路径。此属性及其元素应视为只读,并且只能通过设置 path 实例属性来间接更改。 | |
relative | 字符串 | 获取 base 和 path 实例属性之间的相对路径段。 | 如果设置为任何值。如果在 path 不可用的情况下访问。 |
dirname | 字符串 | 获取并设置 path 实例属性的目录。 | 如果在 path 不可用的情况下访问。 |
stem | 字符串 | 获取并设置 path 实例属性的主干(不带扩展名的文件名)。 | 如果在 path 不可用的情况下访问。 |
extname | 字符串 | 获取并设置 path 实例属性的扩展名。 | 如果在 path 不可用的情况下访问。 |
basename | 字符串 | 获取并设置 path 实例属性的文件名(stem + extname )。 | 如果在 path 不可用的情况下访问。 |
symlink | 字符串 | 获取并设置符号链接的引用路径。 | 如果设置为任何非字符串值。 |
#
实例方法方法 | 返回类型 | 返回 |
---|---|---|
isBuffer() | 布尔值 | 如果 contents 实例属性是 Buffer,则返回 true。 |
isStream() | 布尔值 | 如果 contents 实例属性是 Stream,则返回 true。 |
isNull() | 布尔值 | 如果 contents 实例属性为 null ,则返回 true。 |
isDirectory() | 布尔值 | 如果实例表示目录,则返回 true。当 isNull() 返回 true、stat 实例属性为对象且 stat.isDirectory() 返回 true 时,实例被视为目录。这假设 Vinyl 对象是使用有效的(或正确模拟的)fs.Stats 对象构建的。 |
isSymbolic() | 布尔值 | 如果实例表示符号链接,则返回 true。当 isNull() 返回 true、stat 实例属性为对象且 stat.isSymbolicLink() 返回 true 时,实例被视为符号链接。这假设 Vinyl 对象是使用有效的(或正确模拟的)fs.Stats 对象构建的。 |
clone([options]) | 对象 | 一个具有所有克隆属性的新 Vinyl 对象。默认情况下,自定义属性是深度克隆的。如果 deep 选项为 false,自定义属性将被浅克隆。如果 contents 选项为 false 且 contents 实例属性为 Buffer,则将重用 Buffer 而不是克隆它。 |
inspect() | 字符串 | 返回 Vinyl 对象的格式化解释。由 Node 的 console.log 自动调用。 |
#
规范化和连接所有路径属性都由它们的 setter 规范化。使用 /
连接路径,而不是使用 path.join()
,并且规范化将在所有平台上正确发生。切勿使用 \
连接 - 它是 POSIX 系统上的有效文件名字符。