安装使用
1.全局安装 npm install --global gulp
2.项目依赖 npm install --save-dev gulp
3.在项目根目录下创建一个名为 gulpfile.js 的文件:
var gulp = require('gulp');
gulp.task('default', function(){
// 将你的默认的任务代码放在这});
4.运行gulp,文件中的default任务会被执行,单独指定任务 gulp <task> <othertask>
API
gulp.src(globs[,options]) gulp.src('client/templates/*.jade')
输出符合提供的匹配模式,或者匹配模式数组的文件,将返回一个 Vinyl files 的 stream 它可以被 piped 到别的插件中。
参数说明
globs 所要读取的 glob 或者包含 globs 的数组。
options 通过 glob-stream 所传递给 node-glob 的参数。除了 node-glob 和 glob-stream 所支持的参数外,gulp 增加了一些额外的选项参数:
options.buffer Boolean 默认true 如果该项被设置为 false,那么将会以 stream 方式返回 file.contents 而不是文件 buffer 的形式
options.read Boolean 默认值: true 如果该项被设置为 false, 那么 file.contents 会返回空值(null),也就是并不会去读取文件。
options.base String 默认值: 将会加在 glob 之前
node-golb语法 https://github.com/isaacs/node-glob
gulp.dest(path[, options])
gulp.src('./client/templates/*.jade').pipe(gulp.dest(path[, options])) 能被 pipe 进来,并且将会写文件。并且重新输出(emits)所有数据,因此你可以将它 pipe 到多个文件夹。如果某文件夹不存在,将会自动创建它。
参数说明
path String or Function 文件将被写入的路径(输出目录)。也可以传入一个函数,在函数中返回相应路径,这个函数也可以由 vinyl 文件实例 来提供。
options.cwd String 默认值: process.cwd() 输出目录的 cwd 参数,只在所给的输出目录是相对路径时候有效。
options.mode String 默认值: 0777 八进制权限字符,用以定义所有在输出目录中所创建的目录的权限。
gulp.task(name[, deps], fn)
参数说明
name 任务的名字,如果你需要在命令行中运行你的某些任务,那么,请不要在名字中使用空格。
deps Array 一个包含任务列表的数组,这些任务会在你当前任务运行之前完成。
gulp.task('mytask', ['array', 'of', 'task', 'names'], function() { 。。。});
注意: 你的任务是否在这些前置依赖的任务完成之前运行了?请一定要确保你所依赖的任务列表中的任务都使用了正确的异步执行方式:使用一个 callback,或者返回一个 promise 或 stream。
gulp.watch(glob[, opts], tasks)
参数说明
glob String or Array 一个 glob 字符串,或者一个包含多个 glob 字符串的数组,用来指定具体监控哪些文件的变动。
opts Object 传给 gaze 的参数。
tasks Array 需要在文件变动后执行的一个或者多个通过 gulp.task() 创建的 task 的名字
gulp.watch(glob[, opts, cb])
glob String or Array 一个 glob 字符串,或者一个包含多个 glob 字符串的数组,用来指定具体监控哪些文件的变动。
opts Object 传给 gaze 的参数。
cb(event) Function 每次变动需要执行的 callback。
gulp.watch('js/**/*.js', function(event){
console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
});
callback 会被传入一个名为 event 的对象。这个对象描述了所监控到的变动:
event.type String 发生的变动的类型:added, changed 或者 deleted。
event.path String 触发了该事件的文件的路径。