本文节选自 gulp详细入门教程 作者:Ooo_My_God
gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器;她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成;使用她,我们不仅可以很愉快的编写代码,而且大大提高我们的工作效率。
gulp是基于Nodejs的自动任务运行器, 她能自动化地完成javascript、coffee、sass、less、html、image、css 等文件的的测试、检查、合并、压缩、格式化、浏览器自动刷新、部署文件生成,并监听文件在改动后重复指定的这些步骤。在实现上,她借鉴了Unix操作系统的管道(pipe)思想,前一级的输出,直接变成后一级的输入,使得在操作上非常简单。通过本文,我们将学习如何使用Gulp来改变开发流程,从而使开发更加快速高效。
本示例以gulp-less为例(将less编译成css的gulp插件)展示gulp的常规用法,只要我们学会使用一个gulp插件后,其他插件就差看看其帮助文档了。
gulp常用地址:
gulp官方网址:http://gulpjs.com
gulp插件地址:http://gulpjs.com/plugins
gulp 官方API:https://github.com/gulpjs/gulp/blob/master/docs/API.md
gulp 中文API:http://www.ydcss.com/archives/424
1. 先下载node.js和npm,配置好package.json文件
详见博文《npm入门指南》
2. 全局安装gulp
全局安装gulp目的是为了在终端或命令行中执行gulp任务;
安装:命令提示符执行cnpm install gulp -g
;
命令提示符执行gulp -v
,出现版本号即为正确安装。
3. 本地安装gulp插件。
安装:定位目录命令后提示符执行cnpm install --save-dev
;
本示例以gulp-less为例(编译less文件),命令提示符执行cnpm install gulp-less --save-dev
;
将会安装在node_modules的gulp-less目录下,该目录下有一个gulp-less的使用帮助文档README.md;
为了能正常使用,我们还得本地安装gulp:cnpm install gulp --save-dev
;
PS:细心的你可能会发现,我们全局安装了gulp,项目也安装了gulp,全局安装gulp是为了执行gulp任务,本地安装gulp则是为了调用gulp插件的功能。
4. 新建gulpfile.js文件(重要)
说明:gulpfile.js是gulp项目的配置文件,是位于项目根目录的普通js文件(其实将gulpfile.js放入其他文件夹下亦可)。
它大概是这样一个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. 运行gulp
说明:命令提示符执行gulp 任务名称;
编译less:命令提示符执行gulp testLess (可在 package.json
中 scripts
里指定一个命令快捷执行)
当执行gulp default或gulp将会调用default任务里的所有任务[‘testLess’,’elseTask’]。