JavaScript 和 Gulpfiles#

Gulp 允许您使用现有的 JavaScript 知识编写 gulpfiles,或者使用您对 gulpfiles 的经验编写纯 JavaScript。尽管提供了一些实用程序来简化与文件系统和命令行的交互,但您编写的其他所有内容都是纯 JavaScript。

解释 Gulpfile#

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

转译#

您可以使用需要转译的语言(如 TypeScript 或 Babel)编写 gulpfile,方法是更改 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 文件。然后,该目录可以包含用于任务的各个模块。如果您使用转译器,请相应地命名文件夹和文件。