gulp相关知识(1)
这是一种简单的工具,非常容易上手而且功能也是多种多样。
例如将整个网站打包下来的时候,看到的js代码总是混乱的,这就是类似于gulp的工具进行了加密,其他的功能还有很多这里就不赘述了。
首先是gulp的安装。
gulp的安装首先需要一个服务器,这里安装了node.js和Git Bash。将两样东西安装好了之后,进入gulp的目录下面,然后右键
点击Git Bash Here。
然后输入node node_modules/gulp/bin/gulp.js -sw进入目录
之后便可以输入指令了,如
node node_modules/gulp/bin/gulp.js pair.
关于gulp的功能,其中有分别有——
(1)less文件
less文件是一个语法上非常近似css的文件,使用方便,因为在这个less文件上进行的改动都会直接传输到总的css文件上进行整合。这样你就可以根据需要创建多个less文件,而不需要将所有的css代码都挤在一起。
语法上非常近似的less还可以这么使用:
.a{width:300px;
height:300px;
background:red;
p{
color:red;
}
}
没错,这玩意儿可以这样嵌套,代表属于这个a类的p元素的字体颜色会变成红色。
即便是将结构改的乱七八糟也没关系,最后整合的时候还是会变回来的——
.a{width:300px;
height:300px;
background:red;
}
.a p{
color:red;
}
(2)文件的【流】动
除了这些小东西之外,gulp还有流功能,将某个文件放置,整合同步编译等等都可以做到,例如——
使用以下代码,对gulp的原本文件进行修改,可以做到——
gulp.task("conn",function(){
gulp.src("src/css/*.less").pipe(concat('aa.css')).pipe(gulp.dest(__dirname+'/dist/css'))
})
将根目录下的arc文件夹下的,css文件里所有.less文件,【全部整合成一个aa.css文件】,将其拷贝到一个路径上。这个路径是【根文件路径+/dist/css】
因为本人学的也不是很多,所以在这里就列举机种语法——
gulp.task("yahaha", function(){
console.log('aa')
})
这代表创建一个任务yahaha,当执行这个服务的时候,执行后面的函数,结果会在控制台上显示aa。
而执行的方式是在Git Bash中执行node node_modules/gulp/bin/gulp.js
后面加上任务名字,完整地就是:node node_modules/gulp/bin/gulp.js yhaha
控制台显示也会在这里显示出aa。
下图是执行了pair任务的结果:
有时候,你也能看到这个句式——
gulp.task("task_three", ['task_one', 'task_two'], function(){
.....
})
这代表着执行这个任务之前,会先执行task_one和task_two两个任务。
接下来是这个——
gulp.task("auto_updatejs", function(){
gulp.watch("src/example/js/*.js", ['gulpConcat'])
})
方法中,gulp.watch代表监听事件,它会监听一个或多个文件,上文的代码监听的就是根目录下src/example/js路径中的【所有结尾是.js的文件,一旦文件发生了更改(这里的评判标准是文件是否保存了),变会触发事件,从而执行后面的任务。
gulp.task("gulpConcat", function(){
gulp.src('src/css/a.less').pipe(gulp.dest("C:/Demo/testGyf/dist"))
gulp.src('src/css/*.js').pipe(gulp.dest(otherDist));
});
第一句代表着将路径下的a.less中的数据读出来,然后保存在后面的路径当中
第二句代表将路径下所有.js文件保存在后面的路径中,这个路径自然可以是变量。
gulp.src('src/css/*.js').pipe(concat('aa.js')).pipe(gulp.dest(xiu))
这个代表将数据读取出来之后,通过【管道】将其整合成aa.js然后存放在后面的路径下面。
gulp相关知识(1)的更多相关文章
- 构建工具-Gulp 相关知识
layout: layout title: 『构建工具-Gulp』相关内容整理 date: 2017-04-26 22:15:46 tags: Gulp categories: Tools --- G ...
- gulp相关知识(2)
将之前的东西的理论部分整理了一下—— gulp 前端构建工具 它可以帮助我们完成一些自动化操作 它需要一些插件的支持 var gulp = require('gulp'); --> gulp命令 ...
- 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸
类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...
- 移动WEB像素相关知识
了解移动web像素的知识,主要是为了切图时心中有数.本文主要围绕一个问题:怎样根据设备厂商提供的屏幕尺寸和物理像素得到我们切图需要的逻辑像素?围绕这个问题以iphone5为例讲解涉及到的web像素相关 ...
- listener监听器的相关知识
从别人的博客上我学习了listener的相关知识现在分享给大家 1.概念: 监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上 ...
- UIViewController相关知识
title: UIViewController 相关知识date: 2015-12-13 11:50categories: IOS tags: UIViewController 小小程序猿我的博客:h ...
- 【转】java NIO 相关知识
原文地址:http://www.iteye.com/magazines/132-Java-NIO Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的 ...
- NSString使用stringWithFormat拼接的相关知识
NSString使用stringWithFormat拼接的相关知识 保留2位小数点 1 2 3 4 //.2代表小数点后面保留2位(2代表保留的数量) NSString *string = [NSSt ...
- iOS网络相关知识总结
iOS网络相关知识总结 1.关于请求NSURLRequest? 我们经常讲的GET/POST/PUT等请求是指我们要向服务器发出的NSMutableURLRequest的类型; 我们可以设置Reque ...
随机推荐
- 转载:Ubuntu下deb包的安装方法
转载:Ubuntu下deb包的安装方法,http://blog.csdn.net/kevinhg/article/details/5934462 deb是debian linus的安装格式,跟red ...
- 2015 Multi-University Training Contest 7
1001 Game On the Tree 1002 Tree Maker 1003 Hotaru's problem Manacher处理好p数组. 暴力举一下公共串即可. # include &l ...
- 移动端touch事件获取clientX, clientY
目有个交互需要实现手指滑动的交互,pc端使用mousedown,mousemove,mouseup监听实现. 但在ios设备上mousemove是不好监听的,同类的方法是touchstart,touc ...
- 高性能MySQL第2,3章性能相关 回顾笔记
1. 基准测试(benchmark) 不管是新手还是专家都要熟悉基准测试,benchmark测试是对系统的一种压力测试,目标是为了掌握在特定压力下系统的行为.也有其他原因:如重现系统状态,或者是 ...
- 免费开源的boostrap模板
百度查不到,奶奶的,百度好多国外技术类文章的都查不到 https://colorlib.com/wp/free-html5-admin-dashboard-templates/ 有没有FQ软件介绍呀?
- stm32按键识别
刚写了一个关于stm32单片机的按键识别的程序.目的,同时识别多个按键,并且不浪费cpu的时间. 关于去抖动,以前以为是在按键的时候,手会抖动.通过程序验证,这个确实是误解.这个应该是防止意外干扰.以 ...
- 项目管理实践【四】Bug跟踪管理【Bug Trace and Management】
首先,向大家说一声抱歉,这篇文章耽误了这么久才和大家见面.至于Bug的跟踪和管理的必要性和好处,我就不在这里说了,下面介绍几款Bug跟踪和管理的软件. 一.BugNET BugNET是一个非常优秀的开 ...
- robot framework -重点记录
1.s2l打开的driver和webdriver打开的driver不是同一个driver. rf打开的浏览器.调用的是s2l的driver,而自己的库用的是webdriver的driver,这样在rf ...
- android 优化
1. 使用原生Sqlite语句进行增删改查的操作,而不是使用ContentProvider来封装操作. 2. 对于需要一次性修改多个数据时,可以考虑使用SQLite的事务方式批量处理.
- 深入了解当前ETL的一些基本技术
数据集成是把不同来源.格式和特点的数据在逻辑上或物理上有机地集中,从而为企业提供全 面的数据共享,是企业商务智能.数据仓库系统的重要组成部分.ETL是企业数据集成的概念出发,简要分析了当前ETL中用到 ...