网站搜索

Gulp - 用于自动化开发中的痛苦任务的工具包


Gulp 是一个自动执行重复任务的小工具包。这些重复性任务通常是编译 CSS、JavaScript 文件,或者基本上当您使用处理非标准 JavaScript/CSS 文件的框架时,您将需要使用自动化工具来获取这些文件,将它们打包在一起并编译所有内容,以便您的浏览器可以轻松理解它。

Gulp 对于自动执行以下任务非常有用:

  • 编译 JS 和 CSS 文件
  • 保存文件时刷新浏览器页面
  • 运行单元测试
  • 代码分析
  • 将修改后的文件复制到目标目录

要跟踪创建 gulp 文件、开发自动化工具或自动化任务所需的所有文件,您需要生成 package.json 文件。该文件基本上包含对项目内部内容的解释,以及使项目正常运行所需的依赖项。

在本教程中,您将学习如何安装 Gulp 以及如何自动执行项目的一些基本任务。我们将使用 npm – 它代表节点包管理器。它随 Node.js 一起安装,您可以使用以下命令检查是否已安装 Nodejs 和 npm:

node --version
npm --version

如果您的系统上尚未安装它,我建议您查看教程:在 Linux 系统中安装最新的 Nodejs 和 NPM 版本。

如何在 Linux 中安装 Gulp

可以使用以下命令通过 npm 完成 gulp-cli 的安装。

npm install --global gulp-cli

如果您想在本地安装gulp模块(仅适用于当前项目),您可以使用以下说明:

创建一个项目目录并在其中导航:

mkdir myproject
cd myproject

接下来,使用以下命令来初始化您的项目:

npm init

运行上述命令后,系统会询问您一系列问题,为您的项目提供名称、版本描述等。最后确认您所提供的所有信息:

现在我们可以在我们的项目中安装 gulp 包:

npm install --save-dev gulp

--save-dev 选项告诉 npm 使用新的 devDependency 更新 package.json 文件。

请注意,devDependency 需要在开发期间解决,而 Dependency 在运行时需要解决。既然gulp是一个帮助我们开发的工具,那么在开发的时候就需要解决这个问题。

创建 Gulp 文件

现在让我们创建一个gulpfile。我们想要运行的任务将在该文件中找到。使用gulp命令时会自动加载它。使用文本编辑器创建一个名为 gulpfile.js 的文件。出于本教程的目的,我们将创建一个简单的测试。

您可以将以下代码插入到 gulpfile.js 中:

var gulp = require('gulp');

gulp.task('hello', function(done) {
        console.log('Hello world!');
        done();
});

保存文件,然后尝试使用以下命令运行它:

gulp hello

您应该看到以下结果:

这是上面代码的作用:

  • var gulp=require('gulp'); – 导入 gulp 模块。
  • gulp.task(‘hello’, function(done) { – 定义可从命令行执行的任务。
  • console.log('Hello world!'); – 只需在屏幕上打印“Hellow world!”。
  • done(); – 我们使用此回调函数来指示 gulp 我们的任务已完成。

当然,上面只是一个示例,用于展示如何组织 gulpfile.js。如果您想查看 gulpfile.js 中的可用任务,可以使用以下命令:

gulp --tasks

吞咽插件

Gulp 有数千个可用插件,所有插件都提供不同的功能。你可以在 Gulp 的插件页面查看它们。

下面我们将在一个更实际的例子中使用 minify-html 插件。使用下面的功能,您可以缩小 HTML 文件并将它们放置在新目录中。但首先,我们将安装 gulp-minify-html 插件:

npm install --save-dev gulp-minify-html

您可以使您的 gulpfile.js 看起来像这样:

cat gulpfile.js
样本输出
// including plugins
var gulp = require('gulp')
, minifyHtml = require("gulp-minify-html");

// task
gulp.task('minify-html', function (done) {
    gulp.src('./src/*.html') // path to your files
    .pipe(minifyHtml())
    .pipe(gulp.dest('./dest'));
    done()
});

然后您可以使用以下命令缩小 HTML 文件。

gulp minify-html
du -sh /src dest/

结论

Gulp 是一个有用的工具包,可以帮助您提高工作效率。如果您对此工具感兴趣,我强烈建议您查看其文档页面,可在此处找到。