跳到主要内容

JavaScript 和 Gulpfiles

Gulp 允许你使用现有的 JavaScript 知识编写 gulpfile,或者使用你的 gulpfile 经验编写普通的 JavaScript。虽然提供了一些实用工具来简化文件系统和命令行操作,但你编写的其他所有内容都是纯 JavaScript。

Gulpfile 解释

gulpfile 是项目目录中名为 gulpfile.js 的文件(或大写为 Gulpfile.js,类似于 Makefile),当你运行 gulp 命令时会自动加载。在这个文件中,你会经常看到 gulp API,如 src()dest()series()parallel(),但可以使用任何原生 JavaScript 或 Node 模块。所有导出的函数都会被注册到 gulp 的任务系统中。

转译

你可以使用需要转译的语言编写 gulpfile,比如 TypeScript 或 Babel,方法是将 gulpfile.js 的扩展名更改为指示该语言,并安装匹配的转译器模块。

  • 对于 TypeScript,重命名为 gulpfile.ts 并安装 ts-node 模块。
  • 对于 Babel,重命名为 gulpfile.babel.js 并安装 @babel/register 模块。

大多数新版本的 node 支持 TypeScript 或 Babel 提供的大部分功能,除了 import/export 语法。当只需要该语法时,重命名为 gulpfile.esm.js 并安装 esm 模块。

要深入了解这个主题和支持的扩展名完整列表,请参阅我们的 gulpfile 转译 文档。

拆分 gulpfile

许多用户开始时会将所有逻辑添加到一个 gulpfile 中。如果它变得太大,可以重构为单独的文件。

每个任务都可以拆分到自己的文件中,然后导入到你的 gulpfile 中进行组合。这不仅使组织井然有序,还允许你独立测试每个任务或根据条件变化组合方式。

Node 的模块解析允许你将 gulpfile.js 文件替换为名为 gulpfile.js 的目录,其中包含一个被视为 gulpfile.jsindex.js 文件。该目录可以包含任务的各个模块。如果你使用转译器,请相应地命名文件夹和文件。