一天就可以学会的技能:Gulp

Gulp官网图标

前段时间一直忙于日常事务,疏于学习新知识,适逢周末,室外天气正好,阴+雾霾,私想陋室充电为佳,特此记之。 --2016.11.13

目录

  • 1.Gulp是什么?
  • 2.Gulp能做什么?
  • 3.如何使用Gulp?
  • 4.Gulp与同类工具相比优势/劣势
  • 5.一点小tips

1.Gulp是什么?

gulp,全名gulp.js,是一款基于流的自动化工具。

gulp是前端开发过程中对代码进行自动化构建的利器。它不仅能对资源进行优化,而且在开发过程中能够通过配置自动完成很多重复的任务,让我们可以专注于代码,提高工作效率。


2.Gulp能做什么?

  • 压缩静态资源(HTML, CSS, JS等)
  • 变更静态资源
  • 给静态资源添加 md5(文件指纹)
  • 修改预处理样式后自动编译(SASS,Less)
  • 合并雪碧图(CSS Sprites)
  • 自动刷新浏览器
  • 组件化头部底部(include html)
    ……

这类工作还可以列举很多,在前端工作流出现之前,这些工作都由人力完成,而这些工作往往比写业务本身更加费时,而交给了 Gulp 这类工具,则可以释放这些人力。

Gulp 这类工具的原理很简单,都是提供文件的输入、输出操作,本身功能很少。但之所以能帮忙开发者解决问题,是因为 Gulp 背后有大量已经写好的插件,开发者只需引用这些插件,写少量的代码则可以解决问题。例如需要合并项目中所有 JavaScript 库,可以这样处理:
<pre>var concat = require('gulp-concat');
gulp.task('scripts', function() {
return gulp.src('./lib/*.js')
.pipe(concat('all.js'))
.pipe(gulp.dest('./dist/'));
});</pre>


3.如何使用Gulp?

3.1安装Gulp

先安装Node,安装完后自带npm,打开终端:
1.使用npm全局安装:
<code>npm install -g gulp</code>
2.再在项目中本地安装一次(必须,具体原因待考察):
<code>npm install gulp --save-dev</code>

3.2Gulp语法

Gulp语法很简单,一共就5句,分别是:

  • gulp.dest(path[, options]) - 定义输出文件地址
  • gulp.src(globs[, options]) - 定义输入文件地址
  • gulp.task(name [, deps, fn]) - 定义任务处理函数
  • gulp.watch(glob[, opts, cb]) - 定义要监听改动的文件
  • gulp.watch(glob[, opts], tasks) - 功能同上

示例:
<pre>var concat = require('gulp-concat'); //声明要调用的模块
gulp.task('scripts', function() { //定义一个任务task,命名为'script'
return gulp.src('./lib/*.js') //先找到要处理的代码文件,给一个path
.pipe(concat('all.js')) //采用上面引入的模块,处理好的文件叫做'all.js'
.pipe(gulp.dest('./dist/')); //设置处理后的文件的存放位置
});</pre>


4.Gulp与同类工具相比优势/劣势(以grunt为例)

Grunt VS Gulp

原文链接:gulp VS grunt
作者结论:Gulp更佳,回调语法+插件使用方式比较统一


5.一点小tips

1.下载缓慢/卡住:

由于众所周知的原因,国内到 npm 服务器的连接很不稳定,如果你有V了个PN大可不必担心,也可通过设置 npm 代理服务器的方式访问:**
#########设置与删除 npm 代理
<pre>
// 设置代理
npm config set proxy="http://127.0.0.1:1080"
// 删除代理
npm config delete proxy
</pre>
推荐一个简单的方案:**使用淘宝 npm 镜像 **
**“这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。” **—— 为淘宝团队点赞
<pre>更换 npm 为淘宝源
npm config set registry="https://registry.npm.taobao.org"
npm config set disturl https://npm.taobao.org/dist</pre>

2.定义区分:

  • node , 是javascript语言的环境和平台,
  • npm , bower 是一类,包管理,
  • webpack , browserify , 是一类,javascript预编译模块的方案,
  • requirejs , seajs , 是一类, 基于commonjs,amd,cmd,umd 之类的模块类包加载方案的框架,
  • grunt , gulp , 前端工具,合并、压缩、编译 sass/less,browser 自动载入资源,
  • react , angular , vue , backbone , 是一类,mvc , mvvm , mvp 之类的前端框架,
  • jquery , zepto , prototype , 是一类,前端 DOM , BOM 类库 ,
  • ext , yui , kissy , dojo , 是一类,前端应用组件,
  • underscore , 函数式编程库。

本分类来源于知乎用户春江一条小鱼的回答:前端构建工具 Gulp / browserify/ webpack / npm ?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学...
    井皮皮阅读 1,291评论 0 10
  • 原文标题:Gulp for Beginners作者: Zell Liew翻译:治电小白菜原文地址:https://...
    ZZES_ZCDC阅读 1,570评论 6 18
  • gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学...
    依依玖玥阅读 3,147评论 7 55
  • 编辑于2015年 转载自某作者的译文 作者要是看到请联系我注明出处 对网站资源进行优化,并使用不同浏览器测试并不是...
    krock01阅读 445评论 0 2
  • 1、gulp的安装 首先确保你已经正确安装了nodejs环境。然后以全局方式安装gulp: npm install...
    F_imok阅读 2,353评论 1 11