gulp api
gulp api
简介
gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器;它不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成
gulp是基于Nodejs的自动任务运行器, 它能自动化地完成 javascript/coffee/sass/less/html/image/css 等文件的的测试、检查、合并、压缩、格式化、浏览器自动刷新、部署文件生成,并监听文件在改动后重复指定的这些步骤。
gulp 和 grunt 非常类似,但相比于 grunt 的频繁 IO 操作,gulp 的流操作,能更快地更便捷地完成构建工作。
安装
npm install -g gulp-cli //安装gulp命令行工具
npm install --save-dev gulp //安装gulp到项目
gulpfile.js
var gulp = require('gulp');
gulp.task('default', function(){
//codes..
});
执行gulp
gulp //执行 default任务
gulp connect less //执行多个任务
gulp.src(glob , [options])
gulp.src()
返回当前文件流至可用的插件
glob
string / stringArray 匹配源文件的模式字符串
通配符路径示例:
"src/a.js"
//具体的文件
"src/*"
//src下的所有文件
"src/**/*.js"
//src下所有层级的子文件夹中的js
"{}"
//匹配多个属性 src/{a,b}.js (匹配src/a.js, src/b.js), src/*.{png,jpg,gif} (匹配src文件夹下的图片)
!src/a.js
//排除src/a.js文件var gulp = require('gulp');
var less = require('gulp-less'); gulp.task('testless', function(){
//gulp.src('less/test/style.less')
gulp.src(['less/**/*.less', '!less/{extend,page}/*.less'])
.pipe(less())
.pipe(gulp.dest('./css'));
options
object 可选options =>
{
buffer: true, //是否缓冲文件流,处理大文件时有用
read: true, //是否执行文件读取操作
base: 'some/path' //输出路径的基础路径
} gulp.src('client/js/**/*.js')
.pipe(minify())
.pipe(gulp.dest('build')); //writes 'build/somdir/somefile.js' gulp.src('client/js/**/*.js', {base:'client'})
.pipe(minify())
.pipe(gulp.dest('build'));//writes 'build/js/somedir/somefile.js'
gulp.dest(path, [options])
gulp.dest()
指定处理完成后文件的输出路径
gulp.src('./client/templates/*.jade')
.pipe(jade())
.pipe(gulp.dest('./build/tempaltes')
.pipe(minify())
.pipe(gulp.dest('./build/minify_templates');
path
string or function 指定文件的输出路径options
可选options=>{
cwd: process.cwd(), //文件的输出路径若为相对路径,则相对cwd
mode: '0777' //被创建文件的权限
}
gulp.task(name, [deps], fn)
name
string 任务名称 不能有空格
deps
stringArray 该任务依赖的任务,注意:被依赖的任务需返回它的事件流
fn
function 该任务调用的插件
gulp.task('testless', function(){
return gulp.src(['less/style.less'])
.pipe(less())
.pipe(gulp.dest('./css');
});
gulp.task('minicss', ['testless'], function(){
//执行完testless任务后 再执行minicss任务
gulp.src(['css/*.css'])
.pipe(minifyCss())
.pipe(gulp.dest('./dist/css'));
gulp.watch(glob, [options], tasks) ,gulp.watch(glob, [options], [fn])
gulp.watch()
监听文件变化并执行指定任务
glob
string or stringArray 同 gulp.src(glob)
options
object 可选
tasks
stringArray 需执行的任务数组
fn
function 每个文件变化执行的回调函数
gulp.task('watch1', function(){
gulp.watch('less/**/*.less', ['testless']);
});
gulp.task('watch2', function(){
gulp.watch('js/**/*.js', function(file){
console.log('file ' + file.path + ' was ' + file.type + ', running tasks..');
});
});
gulp api的更多相关文章
- gulp API 文档
gulp.src(globs[, options]) 输出(Emits)符合所提供的匹配模式(glob)或者匹配模式的数组(array of globs)的文件. 将返回一个 Vinyl files ...
- Gulp API之怎样压缩CSS
先做一个简单的科普 gulp.src() 是用来定位执行路径的,参数通常是一个path gulp.dest() 是用来定位输出路径的,执行的结果都会保存在这个路径下面,可以到路径下面查看结果 gulp ...
- gulp初学
原文地址:gulp初学 至于gulp与grunt的区别,用过的人都略知一二,总的来说就是2点: 1.gulp的gulpfile.js 配置简单而且更容易阅读和维护.之所以如此,是因为它们的工作方式不 ...
- Gulp探究折腾之路(I)
前言: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成:使用她,我们不仅可以很愉快的编写代码 ...
- 用gulp构建你的前端项目
前言 前端技术发展日新月异,随着模块化.组件化的提出,前端变得越来越复杂,静态资源越来越多,那么对静态资源的处理,如压缩,合并,去掉调试信息.. 如果还是人工去处理,效率非常之低且还容易出错,于是自动 ...
- gulp使用小结(二)
接上篇文章接Gulp使用小结(一) 内容如下: 首先,偶在gulp-demos上已经提交了个较通用的栗子...俺琢磨半天,原准备分阶段搞些 Gulp 套路,但是写完介个栗子之后,觉得已经能覆盖绝大多数 ...
- gulp使用小结(一)
这篇文章不会介绍 gulp 的起源.发展:不会去一个个讲解 gulp API:也不想出现大段大段的 gulpfile.js 代码:更木有帮你分析 gulp 实现原理,只有一些我自己对 gulp 的使用 ...
- gulp学习笔记4
gulp系列学习笔记: 1.gulp学习笔记1 2.gulp学习笔记2 3.gulp学习笔记3 4.gulp学习笔记4 之前的任务都是单个的,比较简单.接下去我们开始引用多个插件,一次性把任务搞定,省 ...
- gulp进阶构建项目由浅入深
gulp进阶构建项目由浅入深 阅读目录 gulp基本安装和使用 gulp API介绍 Gulp.src(globs[,options]) gulp.dest(path[,options]) gulp. ...
随机推荐
- 《javascript权威指南》阅读笔记 1
3.1-3.5 3.1 数字 3.1首先声明了在JS中的数字是不区分整数值和浮点数值的.其次给出了js浮点类型表示的范围:最大值是±1.7976931348623157×10^308,最小值±5×10 ...
- Java IO流分析整理 .
Java中的流,可以从不同的角度进行分类. 按照数据流的方向不同可以分为:输入流和输出流. 按照处理数据单位不同可以分为:字节流和字符流. 按照实现功能不同可以分为:节点流和处理流. 输出流: 输入流 ...
- git基础命令
git pull 更新git status 查看文件状态git add .添加所有git commit -a -m "xxxx" 提交git push 推送至服务器git dif ...
- php composer使用
Composer-PHP中用来管理依赖(dependency) 定义 composer是PHP中用来管理依赖(dependency)关系的工具.你可以在自己的项目中声明所依赖的外部工具库(librar ...
- python核心编程-第三章-习题
1.这是python的语言特性,python先创建对象,在给变量赋值时,不需要定义变量的名称和类型,它实际是用变量引用对象.变量类型在给变量赋值时自动声明 2.原因类似变量无须声明类型 3.pytho ...
- How Many Tables--hdu1213(并查集)
How Many Tables Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- Immediate Decodability(字典树)
Immediate Decodability Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/O ...
- 有趣的IT面试题
一段看起来很简单C代码,预期结果是输出array数组. #include<stdio.h> #define TOTAL_ELEMENTS (sizeof(array) / sizeof(a ...
- JavaScript学习笔记:数组reduce()和reduceRight()方法
很多时候需要累加数组项的得到一个值(比如说求和).如果你碰到一个类似的问题,你想到的方法是什么呢?会不会和我一样,想到的就是使用for或while循环,对数组进行迭代,依次将他们的值加起来.比如: v ...
- linux下so动态库一些不为人知的秘密(中二)
继续上一篇< linux下so动态库一些不为人知的秘密(中) >介绍so搜索路径,还有一个类似于-path,叫LD_RUN_PATH环境变量, 它也是把路径编译进可执行文件内,不同的是它只 ...