概念#

以下概念是理解 API 文档的先决条件。它们将在整个文档中被引用,详细解释请参考本页。

如果您是新手,请从入门指南开始。

Vinyl#

Vinyl 是描述文件的元数据对象。Vinyl 实例的主要属性是 pathcontents - 文件系统中文件的核心部分。Vinyl 对象可用于描述来自许多来源的文件 - 在本地文件系统或任何远程存储选项上。

Vinyl 适配器#

虽然 Vinyl 提供了描述文件的方法,但需要一种访问这些文件的方式。每个文件源都是使用 Vinyl 适配器访问的。

适配器公开

  • 一个带有签名 src(globs, [options]) 的方法,并返回生成 Vinyl 对象的流。
  • 一个带有签名 dest(folder, [options]) 的方法,并返回消耗 Vinyl 对象的流。
  • 任何特定于其输入/输出介质的额外方法 - 例如 symlink 方法 vinyl-fs 提供的。它们应始终返回生成和/或消耗 Vinyl 对象的流。

任务#

每个gulp任务都是一个异步JavaScript函数,它要么接受一个错误优先的回调,要么返回一个流、Promise、事件发射器、子进程或可观察对象。由于某些平台限制,不支持同步任务。

有关更详细的解释,请参阅创建任务

通配符(Globs)#

通配符是一串由文字和/或通配符字符组成的字符串,比如***!,用于匹配文件路径。通配是使用一个或多个通配符在文件系统上定位文件的行为。

如果您对通配符不熟悉,请参阅解释通配符

通配符基础(Glob base)#

通配符基础 - 有时称为通配符父级 - 是通配符字符串中任何特殊字符之前的路径段。因此,/src/js/**.js的通配符基础是/src/js/。所有匹配通配符的路径都保证共享通配符基础 - 该路径段不能是可变的。

src()生成的Vinyl实例的base属性设置为其通配符基础。在使用dest()写入文件系统时,base将从输出路径中移除,以保留目录结构。

有关更详细的信息,请参阅glob-parent存储库。

文件系统统计信息#

文件元数据作为Node的fs.Stats实例提供。它作为您的Vinyl实例上的stat属性可用,并在内部用于确定Vinyl对象是否表示目录或符号链接。写入文件系统时,权限和时间值将从Vinyl对象的stat属性同步。

文件系统模式#

文件系统模式确定文件的权限。您的文件系统上的大多数文件和目录都具有相当宽松的模式,允许gulp代表您读取/写入/更新文件。默认情况下,gulp将以与运行进程相同的权限创建文件,但您可以通过src()dest()等选项配置模式。如果遇到权限(EPERM)问题,请检查文件的模式。

模块#

Gulp由许多小模块组成,这些模块被整合在一起以协同工作。通过在这些小模块中利用semver,我们可以发布错误修复和功能,而无需发布新版本的gulp。通常,当您在主存储库上看不到进展时,工作是在这些模块之一中进行的。

如果遇到问题,请确保使用npm update命令更新当前模块。如果问题仍然存在,请在各个项目存储库上开启一个问题。