Gulp自动化工具详解2

Gulp使用教程
一、简介
gulp是 前端开发 过程中对代码进行构建的工具,是 自动化 项目的构建利器;她不仅能对网站资源进行优化,而且在开发过程中很多 重复的任务 能够使用正确的工具自动完成;使用她,我们不仅可以很愉快的编写代码,而且大大 提高 我们的工作效率。
gulp是基于Nodejs的 自动任务运行器 ,她能自动化地完成 javascript/coffee/sass/less/html/image/css 等文件的的 测试 检查 合并 压缩 格式化 浏览器自动刷新 部署文件生成 ,并 监听 文件在改动后重复指定的这些步骤。在实现上,她借鉴了Unix操作系统的管道(pipe)思想,前一级的输出,直接变成后一级的输入,使得在操作上非常简单。
gulp 和 grunt 非常类似,但相比于 grunt 的频繁 IO 操作,gulp 的流操作,能更快地更便捷地完成构建工作。
  1. 安装nodejs
2.1、说明:gulp是基于nodejs,理所当然需要安装nodejs;
2.2、安装:打开nodejs官网(https://nodejs.org/en/),点击硕大的绿色Download按钮,它会根据系统信息选择对应版本(.msi文件)。
注:安装完成之后注意将其配置到环境变量(系统变量path中),这样你就可以在全局范围内去使用它了
我的路径是在D:\Program Files\nodejs\node_modules\npm\bin,记得把它也配置进去
(注:node的环境变量一定要是在最前面,基于node环境安装的插件如cordova,gulp等才会起作用)
配置环境变量方法:
将软件安装目录下的 bin 目录复制到系统环境变量的变量值处即可。
graphic
2.3测试:按window + r 输入cmd回车,然后输入node -v
         然后输入npm -v 
             如果都能打印出相应版本信息,那么说明你配置成功了
v是version版本的缩写。
  1. 选装cnpm
因为npm安装插件是从国外服务器下载,受网络影响大,可能出现异常,如果npm的服务器在中国就好了,所以我们乐于分享的淘宝团队干了这事。
网址: http://npm.taobao.org  
安装:命令提示符执行
npm install cnpm -g --registry=https://registry.npm.taobao.org
注意: 安装完后最好查看其版本号cnpm -v或关闭命令提示符重新打开,安装完直接使用有可能会出现错误;
将路径C:\Users\asus\AppData\Roaming\npm\node_modules\cnpm配置到环境变量中,这样就可以在全局范围内使用cnpm命令了
注: cnpm跟npm用法完全一致,只是在执行命令时将npm改为cnpm(以下操作将以cnpm代替npm)。
(以上三步是安装node环境,并安装cnpm插件库。node环境使我们可以运行node下的插件,cnpm是node下的一个大的模块,里面提供了很多插件,我们可以通过cnpm就可以在国内的服务器下载到国外的npm服务器下的插件)
  1. 全局安装gulp
在cmd中执行 cnpm install gulp -g
查看是否正确安装:命令提示符执行gulp -v,出现版本号即为正确安装
注意配置环境变量(C:\Users\asus\AppData\Roaming\npm\gulp)
  1. 新建package.json文件
进入自己需要的一个文件夹中   (创建一个自己需要的文件夹)
在dos中打开你创建文件夹的路径: cd F:\workspace\gulp
cd空格路径,表示进入该路径
cd.. 表示返回到上一文件夹
创建package.json文件步骤:
   在当前路径下输入 cnpm init  ,回车运行
该json文件用于记录在该插件所在安装目录下安装过的所有的插件。
graphic
在路径  下会形成这样的一个.json文件( 部分内容为后添加的
{
  "name": "gulptest", //项目名称(必须)
  "version": "0.0.1", //项目版本(必须)
  "description": "这是一个gulp的测试程序", //项目描述(必须)
"homepage": "",    //项目主页
  "main": "index.js", // 入口文件
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [ // 关键词
    "gulp"
  ],
  "author": "wuxunxun007", // 作者
  "license": "ISC" //项目许可协议
"devDependencies": {     //项目依赖的插件
    "gulp": "^3.8.11",
    "gulp-less": "^3.0.0"
  }
}
查看package.json帮助文档,命令提示符执行 cnpm help package.json
  1. 本地安装gulp插件
安装:定位目录命令后提示符执行 cnpm install gulp --save-dev
本示例以 gulp-less 为例(编译 less 文件),命令提示符执行 cnpm install gulp-less --save-dev
graphic
将会安装在 node_modules gulp-less 目录下,该目录下有一个 gulp-less 的使用帮助文档 README.md
4,5,6 三步是用来安装 node 下插件的通用方法,当我们安装过 node 环境后,只需要进行 4 5 6 三步就可以完成 node 下大的插件类的安装。先全局安装,再在目标路径生成一个 json 文件用于记录安装了那些东西,再在目标路径下本地安装这个大类的插件)
目前使用的 gulp 插件有: gulp gulp-less gulp-sass gulp-connect gulp-contact gulp-uglify, gulp-rename, gulp-minify-css gulp-imagemin
gulp gulp 下的核心插件,其下提供 task dest src pipe 等多种方法
less less 后缀的文件自动改成 css 格式
less sass 后缀的文件自动改成 css 格式
connect 用于起服务器,生成一个服务器端口,输入生成的 localhost :端口号,即可以服务器的形式打开这个文件
gulp-contact :用于合并两个文件
gulp-uglify :用于压缩文件,删掉所有的空格和换行,会大大减小文件的大小。
gulp-rename: 用于重命名文件
gulp-minify-css :用于压缩 css 文件
gulp-imagemin :用于压缩图片
gulp gulp 下的核心插件,其下提供 task src pipe dest 等多种方法:
task 表示创建一个 gulp 任务,其内有两个参数,第一个是任务名,第二个是任务响应函数。
src 选择要操作的文件
pipe 有一个参数,参数内执行 gulp 本身或是其他插件的一些方法(注: pipe 方法一定是在 src 方法基础之上再点出的方法,不能直接 gulp.pipe (),只能 gulp.src().pipe() 。)
dest 把操作完成的文件输出到 参数所示路径。
通过在 dos 中输入 gulp 任务名,来调用该任务。
使用 .pipe 管道方法,如果没有对应的文件夹,就会自动创建该名称的文件夹
使用 gulp 下的插件时,要先移入插件:
graphic
(只有在dos中,进入到本地安装插件的目录下,输入运行插件的命令,才能正确运行该插件。gulp运行插件的命令是gulp 任务名)
gulp.dest() ,就是调用 gulp 插件下的 dest 方法, dest 方法是将上述 src 到的文件输出到参数中的目录下。
gulp 下复制文件的方法
graphic
创建 gulp 任务 –- 找到要被操作的文件 执行某种操作。
任务名都是自己任意定义的,他只是一个标记,并不是关键字。
使用 gulp 复制文件的方法,可以批量选择多种格式的文件:
可以通过 *.jpg 可以选择到当前路径下的所有 jpg 文件。
可以通过 *.{jpg png} 可以选择到当前路径下的所有 jpg png 文件。
可以通过 **/*         可以选择到当前路径下的所有文件和当前路径中的所有文件夹下的所有文件
可以通过 graphic , 找到不同的两个相对路径下的两个文件。
可以通过 非选择符加指定文件来过滤掉已经选择的文件中的该文件:
graphic
gulp 中支持同时执行多个任务 ,首先创建一个任务(暂把任务名命名为 builder ),在该任务的参数中 在任务名 后面添加一个数组,里面存放所有的任务名,那么执行 builder 任务是,就会同时执行该任务下所有的其他任务。
graphic
注:复制文件的命令因为下面需要写操作的动作,所以在复制命令后面不能有分号。
而对于监听命令,后面不需要写操作的动作,所以监听命令后可以有分号。
我们一般是把外面的一个文件,复制到一个 dist 文件夹中。通过监听命令建立起复制前后两个文件的关联关系。
通过 监听命令 可以实现 dist 文件夹外,改变了对应的文件内容后,会在对应的文件连接下更新对应的文件里的内容。
gulp dos 命令下,输入任务名,以执行该任务:
graphic
安装 less 方法:
在目录中创建 src 文件夹,在该文件夹中创建 less 文件夹和 css 文件夹 graphic graphic
less 文件中创建一个 index.less 文件,写一些代码 graphic graphic
然后在你的项目的根目录下创建一个 gulpfile.js 文件
在该文件中写入
graphic
然后打开 cmd 窗口,或者你安装了 git 环境的话,直接在该文件夹下右键点解 Git Base Here ,然后输入 gulp 命令,那么你就在你的 src/css 文件夹下就可以看到一个 index.css 文件,这个文件就是我们编译 less 文件之后生成的一个 css 文件
安装 sass ,接着之前的安装过程中, dom 命令下输入
graphic
进行 sass 的安装。
文件夹及文件的创建:
graphic
sass 的使用:
sass 文件的后缀名是 .scss
将创建的 scss 文件转化成 css 文件,并复制到 src 下的 css 中。
graphic
不管是用 less 还是用 sass ,在 html 文档中链入的都是 css 文件。
graphic
css 中要配置了,一般就是要使用 json 文件了
dos 命令中   ctrl+c  命令来终止此次批处理的命令。
安装 connect 插件
graphic
起服务,并设置服务的根目录的方法:
graphic
livereload:true;  方法的原理就是创建一个 script 标签,该标签中自带一个 src 链接到系统自带的一个 js 文件,有一个 async 进行异步, defer 进行延迟,执行该文件中的一个 window.reload () ; 语句,从而实现页面的自动更新。
实现页面的热替换:
         热替换就是当改变代码时,网页上内容会自动改变。其实现共分四步,效果是当改变 gulp 根目录下的 index 文件时,会自动执行 copy-index 任务,把新的 index 文件复制到 dist 文件夹中,同时执行了热替换命令,就使的 dist 下的 index 文件在服务器下打开时,页面会自动更新:
1    在生成 要进行热替换网页 的任务中,加上 connect.reload() 方法,使网页能进行热替换,并且如果是要在谷歌中运行该网页,必须要安装一个 livereload 的插件
graphic
2 :对生成 要进行热替换网页 的任务添加事件监听,当文件改变时,执行该任务。
graphic
3: 开启服务器
graphic
4:      实现热替换必备的两个任务,一个是监听,一个是在服务器条件下打开网页,所以在任务名后面加上一个数组,里面用于存放要执行的多个任务名,当调用该任务时,就会同时执行数组中的所有任务。( default gulp 默认执行的任务,当 dos 中只输入 gulp 时,就会默认执行 gulp default 任务)
graphic
        
安装插件: gulp-contact
graphic
gulp-contact 插件用于合并两个文件,设置服务的步骤:
graphic
安装插件: gulp-uglify
graphic
graphic
压缩过的代码一般重命名为 名称 .min.js
安装插件: gulp-rename
graphic
graphic
安装插件: gulp-minify-css
graphic
graphic
安装插件: gulp-imagemin
graphic
graphic
压缩成功后效果:
graphic
通过 gulp.task(“ 任务名 ”,[ 任务名 1 ,任务名 2]);
通过 dos 中运行 gulp 任务名,就可以同时运行任务名 1 和任务名 2
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、5资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值