gulp是基于Nodejs的自动任务运行器, 她能自动化地完成 javascript/coffee/sass/less/html/image/css 等文件的的测试、检查、合并、压缩、格式化、浏览器自动刷新、部署文件生成,并监听文件在改动后重复指定的这些步骤。在实现上,她借鉴了Unix操作系统的管道(pipe)思想,前一级的输出,直接变成后一级的输入,使得在操作上非常简单。通过本文,我们将学习如何使用Gulp来改变开发流程,从而使开发更加快速高效。
1.安装nodejs
1.1 安装:打开nodejs官网,点击硕大的绿色Download按钮,它会根据系统信息选择对应版本(.msi文件)。然后像安装QQ一样安装它就可以了(安装路径随意)
1.2 新版的nodejs已经集成了npm,npm也一并安装好了。可以使用cmd命令行输入"npm -v"来测试是否成功安装
1.3 配置npm的全局模块的存放路径以及cache的路径,例如我希望将以上两个文件夹放在NodeJS的主目录下,便在NodeJs下建立"node_global"及"node_cache"两个文件夹
1.4 启动cmd,输入:
npm config set prefix"C:\Program Files\nodejs\node_global"
以及
npm configset cache"C:\Program Files\nodejs\node_cache"
1.5 打开系统对话框,“我的电脑”右键“属性”-“高级系统设置”-“高级”-“环境变量”。在系统变量下新建"NODE_PATH",输入”
C:\Program Files\nodejs\node_global\node_modules
“
1.6 由于改变了module的默认地址,所以上面的用户变量都要跟着改变一下(用户变量"PATH"修改为“
C:\Program Files\nodejs\node_global\
”)
1.7 cnpm安装,在cmd中输入以下代码即可将npm指向国内镜像源,之后输入cnpm -v查看版本。接下来我们就可以用cnpm代替npm了
npm install -g cnpm –registry=https://registry.npm.taobao.org
2.全局安装gulp
2.1全局安装gulp目的是为了通过她执行gulp任务,命令提示符执行
cnpm install gulp -g
2.2查看是否正确安装:命令提示符执行gulp -v,出现版本号即为正确安装。
3.项目安装gulp以及gulp插件
3.1 D盘新建你的测试文件夹gulp,(假设你的nodejs安装在默认路径下
C:\Program Files\nodejs
,在D盘创建你的测试项目)通过命令行定位到你项目目录
C:\Users\administor>cd d:\gulp
C:\Users\administor>D:
D:\gulp cnpm init (创建package.json文件,输入项目的相关信息,可为空)
3.2 本地安装gulp插件,示例以gulp-less为例(编译less文件),命令提示符执行
cnpm install gulp-less --save-dev
3.3 为了能正常使用,我们还得本地安装
gulp:cnpm install gulp --save-dev
全局安装gulp是为了执行gulp任务,本地安装gulp则是为了调用gulp插件的功能。
4.配置gulpfile.js
4.1 gulpfile.js是gulp项目的配置文件,是位于项目根目录的普通js文件
//导入工具包 require('node_modules里对应模块')
var gulp = require('gulp'), //本地安装gulp所用到的地方
less = require('gulp-less');
//定义一个testLess任务(自定义任务名称)
gulp.task('testLess', function () {
gulp.src('src/less/index.less') //该任务针对的文件
.pipe(less()) //该任务调用的模块
.pipe(gulp.dest('src/css')); //将会在src/css下生成index.css
});
gulp.task('default',['testLess', 'elseTask']); //定义默认任务 elseTask为其他任务,该示例没有定义elseTask任务
//gulp.task(name[, deps], fn) 定义任务 name:任务名称 deps:依赖任务名称 fn:回调函数
//gulp.src(globs[, options]) 执行任务处理的文件 globs:处理的文件路径(字符串或者字符串数组)
//gulp.dest(path[, options]) 处理完后文件生成路径
5.运行任务
5.1、说明:命令提示符执行gulp 任务名称;
5.2、编译less:命令提示符执行gulp testLess;
5.3、当执行gulp default或gulp将会调用default任务里的所有任务[‘testLess’,’elseTask’]
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。