简介:
Gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器;不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成;使用gulp,不仅可以很愉快的编写代码,而且大大提高工作效率
Gulp是基于nodejs的自动化任务运行器。能自动化地完成JavaScript,coffee,sass,less,html,image,css等文件的测试,检查,合并,压缩,格式化,浏览器自动刷新,部署文件生成,并监听文件在改动后重复指定的这些步骤。实现上,借鉴了Unix操作系统的管道(pipe)思想,前一级的输出,直接变成后一级的输入,使得在操作上非常简单。
Gulp和grunt非常类似,但相比于grunt的频繁IO操作,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
使用gulp步骤,首先是安装nodejs,通过nodejs的npm全局安装和项目安装gulp,其次在项目里安装所需要的gulp插件,然后新建gulp的配置文件gulpfile.js并写好配置信息(定义gulp任务),最后通过命令提示符运行gulp任务。
安装nodejs --> 全局安装gulp ---> 项目安装gulp以及gulp插件 ---> 配置gulpfile.js ---> 运行任务
一:nodejs安装
1. 说明:gulp是基于nodejs,理所当然需要安装nodejs
2. 安装:打开nodejs官网,下载
二:安装git
使用git bash
三:查看安装是否成功
node -v 查看安装nodejs版本。PS:未能出现版本号,请尝试注销重试。
npm -v 查看npm的版本号,npm是在安装nodejs时一同安装的nodejs包管理器
cd 定位到项目目录
dir或 ls列出文件列表
clear清空命令提示符窗口内容
tab提示键
ctrl+c退出
四:npm介绍
1. 说明:npm(node package manager)nodejs的包管理器,用于node插件管理(包括安装,卸载,管理依赖等)
2. 使用npm安装插件:命令提示符执行 npminstall
3.
4. –g :全局安装。将会安装到C:\Users\Administrator\AppData\Roaming\npm,并且写入系统环境变量;非全局安装;将会安装在当前定位目录;全局安装可以通过命令行在任何地方调用,本地安装将安装在定位目录的node_modules文件夹下,通过require()调用。
5. –save:将保存配置信息至package.json(package.json是nodejs项目配置文件)
6. –dev :保存至package.json的devDependences 节点,不指定-dev将保存至dependencies节点
7. 为什么要保存至package.json?因为node插件包相对来说非常庞大,所以不加入版本管理,将配置信息写入package.json并将其加入版本管理,其他开发者对应下载即可(命令执行符执行npm install,则会根据package.json下载所有需要的包)
8. 使用npm卸载插件:npm uninstall
9. 使用npm 更新插件:npm update
10. 查看npm 帮助:npm help
11. 当前目录已安装插件:npm list
PS:npm安装插件过程:从http://registry.npmjs.org下载对应的插件包(该网站服务器位于国外,所以经常下载缓慢或出现异常)
五:选装cnpm
1. 说明:因为npm安装插件是从国外服务器下载,受网络影响大,可能出现异常,如果npm的服务器在中国就好了,所以淘宝分享了,“这是个完整npmjs.org镜像,你可以用此替代官方版本,同步频率目前为10分钟一次保证尽量与官方服务同步。”
2. 官网: http://npm.taobao.org
3. 安装: 命令提示符执行npm installcnpm –g –registry=https://registry.npm.taobao.org;注意安装完成后最好查看版本号cnpm –v或者关闭命令提示符重新打开,安装完直接使用可能会出现错误
4. cnpm根npm 用法完全一致,只是在执行命令时将npm改为cnpm
六:全局安装gulp
1. 说明:全局安装gulp目的是为了通过它执行gulp任务
2. 安装:命令提示符执行 cnpm install gulp -g
3. 命令提示符执行gulp –v,出现版本号
七:新建package.json文件
1. 说明:package.json是基于nodejs项目必不可少的配置文件,它是存放在项目根目录的普通json文件
2. {
3. "name": "test", //项目名称(必须)
4. "version": "1.0.0", //项目版本(必须)
5. "description": "Thisis for study gulp project !", //项目描述(必须)
6. "homepage": "", //项目主页
7. "repository": { //项目资源库
8. "type": "git",
9. "url": "https://git.oschina.net/xxxx"
10. },
11. "author": { //项目作者信息
12. "name": "surging",
13. "email": "[email protected]"
14. },
15. "license": "ISC", //项目许可协议
16. "devDependencies": { //项目依赖的插件
17. "gulp": "^3.8.11",
18. "gulp-less": "^3.0.0"
19. }
20.}
3. 命令执行npm init
npm init后,依次按照提示name,version ,description, main,dependencies,devDependencies,scripts,author,license ,最后选择y
4. npm init后会在项目里自动创建一个package.json文件,命令提示符执行npm help package.json
PS:package.json是一个普通的json文件,所以不能添加任何注释
八:本地安装gulp插件
1. 安装:定位目录命令提示符执行npm install gulp –save-dev
2. 全局安装gulp,项目也安装了gulp;全局安装gulp是为了执行gulp任务,本地安装gulp则是为了调用gulp插件功能。
九:新建gulpfile.js文件
1. 说明:gulpfile.js是gulp项目的配置文件,是位于项目根目录的普通js文件(其实将gulpfile.js放入其他文件夹下亦可)
2. 大概是这样js文件
3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
//导入工具包 require('node_modules里对应模块') vargulp = 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']);//定义默认任务
//gulp.task(name[, deps], fn) 定义任务 name:任务名称 deps:依赖任务名称 fn:回调函数 //gulp.src(globs[, options]) 执行任务处理的文件 globs:处理的文件路径(字符串或者字符串数组) //gulp.dest(path[, options]) 处理完后文件生成路径 |
十: 运行gulp
1. 说明:命令提示符执行gulp任务名称
2. 直接在项目路径下运行gulp(跟运行grunt一样)