乐趣区

关于gulp:Gulp-API

本节咱们来看一下 Gulp 中的 API 办法,如下所示:

办法 形容
src() 创立用于从文件系统读取 Vinyl 对象的流
dest() 创立一个用于将 Vinyl 对象写入到文件系统的流
symlink() 创立一个流(stream),用于连贯 Vinyl 对象到文件系统
lastRun() 检索在以后运行过程中胜利实现工作的最初一次工夫
series() 将工作函数和 / 或组合操作组合成更大的操作,这些操作将按程序顺次执行
parallel() 将工作性能和 / 或组合操作组合成同时执行的较大操作
watch() 监听 globs 并在产生更改时运行工作
task() 在工作零碎中定义工作
registry() 容许将自定义的注册表插入到工作零碎中,以期提供共享工作或加强性能
tree() 获取当前任务依赖关系树——在极少数状况下须要它
Vinyl 虚构的文件格式
Vinyl.isVinyl() 检测一个对象(object)是否是一个 Vinyl 实例
Vinyl.isCustomProp() 确定一个属性是否由 Vinyl 在外部进行治理

咱们在应用 gulp 时,个别只须要用到 4 个 API,别离是 gulp.src()、gulp.dest()、gulp.task()、gulp.watch(),上面咱们具体介绍一个这 4 个罕用 API 的应用。

gulp.src() 办法

gulp.src() 办法用于创立一个流。然而要留神的是这个流里的内容不是原始的文件流,而是一个虚构文件对象流(vinyl files),这个虚构文件对象中存储着原始文件的门路、文件名、内容等信息。

语法如下所示:

gulp.src(globs, [options])
  • globs:文件匹配模式(类型正则表达式),用来匹配文件门路(包含文件名),也能够间接指定某个具体的文件门路。
  • options:可选参数,通常状况下不须要用到。

示例:

例如上面这个例子,将 input 文件夹中的 .js 文件复制到 output 文件夹中:

const {src, dest} = require('gulp');

function copy() {return src('input/*.js')
    .pipe(dest('output/'));
}

exports.copy = copy;

执行 gulp copy 命令后,文件胜利被复制。

gulp.dest() 办法

gulp.dest() 办法能够创立一个用于将 Vinyl 对象写入到文件系统的流。

语法如下:

gulp.dest(path[ , options])
  • path:为写入文件的门路。
  • options:可选的参数对象,通常用不到。

gulp.dest() 办法是和 gulp.src() 办法搭配应用的,例如上述这个复制文件的示例。

gulp 的应用流程个别是,首先通过 gulp.src() 办法获取咱们想要解决的文件流,而后把文件流通过 pipe 办法导入到 gulp 插件中,最初把通过插件解决后的流再通过 pipe 办法导入到 gulp.dest() 中,gulp.dest() 办法则把流中的内容写入到文件中。

留神,给 gulp.dest() 传入的门路参数,只能用来指定要生成的文件的目录,而不能指定生成文件的文件名,它生成文件的文件名应用的是导入到它的文件流本身的文件名,所以生成的文件名是由导入到它的文件流决定的。

gulp.task() 办法

gulp.task() 办法用于在工作零碎中定义工作,而后能够从命令行和 series()、parallel()、lastrun() 等 API 拜访该定义好的工作。

语法如下所示:

gulp.task(name [ , deps] , fn )
  • name:工作名。
  • deps:是以后定义的工作须要依赖的其余的工作,为一个数组。以后定义的工作会在所有依赖的工作执行结束后才开始执行。如果没有依赖,则能够省略这个参数。
  • fn:可选参数,为工作函数,咱们把工作要执行的代码都写在外面。

示例:

task() 办法的用法有上面几种:

  • 将命名函数注册为工作,其中函数名 test 就是工作名:
const {task} = require('gulp');

function test(cb) {console.log("命令函数")
  cb();}

task(test);
  • 将匿名函数注册为工作:
const {task} = require('gulp');

task('test', function(cb) {console.log("匿名函数")
  cb();});
  • 检索先前已注册的工作:
const {task} = require('gulp');

task('test', function(cb) {cb();
});

const test = task('test');

gulp.watch() 办法

gulp.watch() 办法用来监督文件的变动,当文件发生变化后,咱们能够利用它来执行相应的工作,例如文件压缩等。

语法如下所示:

gulp.watch(glob [ , opts] , tasks)
  • glob:为要监督的文件匹配模式,规定和用法与 gulp.src() 办法中的 glob 雷同。
  • opts:为一个可选的配置对象,通常不须要用到。
  • tasks:为文件变动后要执行的工作,为一个数组。

示例:

例如应用 gulp.watch 语句监听文件变动:

const {watch} = require('gulp');

watch(['input/*.js', '!input/one.js'], function(cb) {cb();
});
退出移动版