美文网首页
一天就可以学会的技能:Gulp

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

作者: Mike_Gu | 来源:发表于2016-11-13 21:00 被阅读95次
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 ?

相关文章

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

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

  • 学会一项技能需要多久

    学会一项技能需要多久?有人提出10000小时法则,只要坚持学习10000小时,你就可以熟悉掌握一项技能。我认...

  • 教你如何快速攻下陌生领域!

    在这个快速发展中的时代,如何快速掌握一项新技能攻下陌生领域应该是每个人都想掌握的终极技能。学会这一技能,就可以“玩...

  • 运营能力的培养

    运营能力的培养 一、学习能力在学习训练中习得各种需要的技能和储备技能,比如学会了开车,腿脚就会变得很长,就可以利用...

  • gulp

    gulp gulp.src gulp.dest gulp.task gulp.watch gulp.pipe() ...

  • gulp自动化项目构建

    var gulp = require('gulp');//引用gulp var $ = require('gulp...

  • Gulp 使用方法(教程一)

    Gulp 官网 目录 Gulp 环境 Gulp 环境 初始化目录结构 安装 gulp gulp 的简单使用 使用 ...

  • gulp压缩合并文件

    gulp压缩合并文件流程 //引入gulp和gulp插件var gulp = require('gulp');va...

  • gulp讲解

    一、gulp的四个主要的API gulp.src、gulp.pipe、gulp.dest、gulp.watch 二...

  • 无标题文章

    如果有一天我学会冷漠,学会不在乎别人的存在,是不是就可以平静的活着了。

网友评论

      本文标题:一天就可以学会的技能:Gulp

      本文链接:https://www.haomeiwen.com/subject/pfmcpttx.html