工作方式、流程
gulp 使用 node.js 中的 流stream ;
方式:获取 stream -> 通过 pipe() 方法将其导入到功能插件中 -> 经处理后,可继续导入到其它插件、或直接通过 dest() 写入文件。
流程: gulp.src() 获取到要处理的文件流 -> pipe() 方法将其导入到相应的 gulp 插件 -> 再通过 pipe() 导入到 gulp.dest() -> gulp.dest() 把处理后流中的内容写入到指定文件中。
globs 匹配
在用gulp.src() 获取 流stream 、gulp.dest()写入文件的时候,我们要找到对应文件的路径、文件名,这就需要熟悉 globs 匹配规则了。gulp 内部使用了 node-glob 模块来实现其文件匹配功能。glops 匹配跟 js 正则相似。直接参考例子更易懂:
|
|
src 获取流
gulp.src() 用来获取流的,但这个流里的内容不是原始的文件流,而是一个虚拟文件对象流,它只存储着原始文件的路径、文件名、内容等信息。其语法为:
|
|
参数 globs 匹配模式,类型可为 string array,可指定一个具体文件路径、可用数组放多个匹配模式。
|
|
参数 options 可选,有三个选项:
options.buffer;类型:Boolean; 默认值:true;略options.read;类型:Boolean; 默认值:true;略options.buffer;类型:String;输出路径;
|
|
dest 写入文件
gulp.dest() 指定被处理后的文件的输出路径,语法、实例:
|
|
参数一 path: 类型(必填):String or Function 指定文件输出路径;
参数二 options:
- options.cwd;类型: String ;默认值: process.cwd();只在所给的输出目录是相对路径时候有效。
- options.mode;类型: String ;默认值: 0777;用以定义所有在输出目录中所创建的目录的权限。
watch 监视文件
gulp.watch() 监视到文件变化后执行相应的任务;语法有2种:
|
|
glop 匹配模式;opts 可选,很少用;tasks 变化后要执行的任务;实例:
|
|
task 定义任务
gulp.task() ,语法:
|
|
name 任务名; deps 当前任所依赖的其它任务,数组,可选;fn 执行该任务所调用的插件操作,可选。实例:
|
|
run 执行任务
gulp.run() 表示要执行的任务:
|
|
任务是尽可能多的并行执行的,并且可能不会按照指定的顺序运行。