工作方式、流程
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()
表示要执行的任务:
|
|
任务是尽可能多的并行执行的,并且可能不会按照指定的顺序运行。