gulp是一个开源JavaScript工具包,用作前端Web开发中的流构建系统,基于Node.js和npm的任务运行器,用于自动化Web开发中涉及的耗时和重复性任务,如缩小,连接,缓存清除,单元测试,linting,优化等。
gulp 是一个开源 JavaScript 工具包,由 Eric Schoffstall 创建,用作前端 Web 开发中的流构建系统。 它是一个基于 Node.js 和 npm 的任务运行器,用于自动化 Web 开发中涉及的耗时和重复性任务,如缩小,连接,缓存清除,单元测试,linting,优化等。
gulp 使用代码配置方法来定义其任务,并依赖于其小型的单用途插件来实现它们。gulp 生态系统包括 3500 多个这样的插件。
概述
gulp 是基于节点流构建的 JavaScript 构建工具。这些流有助于通过管道连接文件操作。gulp 读取文件系统并通过.pipe()操作员将手头的数据从一个单一用途的插件传送到另一个插件,一次完成一个任务。在处理完所有插件之前,原始文件不会受到影响。它可以配置为修改原始文件或创建新文件。这通过链接其众多插件来授予执行复杂任务的能力。用户还可以编写自己的插件来定义自己的任务。与通过配置运行任务的其他任务运行程序不同,gulp 需要 JavaScript 知识和编码来定义其任务。gulp 是一个构建系统,除了运行任务外,它还能够将文件从一个位置复制到另一个位置,编译,部署,创建通知,单元测试,linting 等。
运行
像 gulp 和 Grunt 这样的任务运行程序是基于 Node.js 而不是 npm 构建的,因为基本的 npm 脚本在执行多个任务时效率很低。尽管一些开发人员更喜欢 npm 脚本,因为它们可以简单易用,但有很多方法可以让 gulp 和 Grunt 相互优势并提供默认的脚本。Grunt 通过转换文件来运行任务,并将其保存为临时文件夹中的新文件,并将一个任务的输出作为另一个任务的输入,依此类推,直到输出到达目标文件夹。这涉及很多 I / O.调用和创建许多临时文件。gulp 流经文件系统,并且不需要任何这些临时位置,从而减少了 I / O 调用的数量,从而提高了性能。Grunt 使用配置文件来执行任务,而 gulp 则需要对其构建文件进行编码。在 Grunt 中,每个插件都需要配置为将其输入位置与之前插件的输出相匹配。在 gulp 中,插件自动管道衬里。
操作
gulp 任务从命令行界面(CLI)shell 运行,并且需要项目根目录中的 package.json 和 gulpfile.js(或简称 gulpfile)。gulpfile 是加载插件并定义任务的地方。首先,加载所有必需的模块,然后在 gulpfile 中定义任务。gulpfile 中指定的所有必要插件都安装在 devDependencies 中。默认任务运行$gulp。单个任务可以由 gulp.task 定义并运行 gulp <task> <othertask>。复杂的任务是通过在.pipe()操作员的帮助下链接插件来定义的。