美文网首页
一天就可以学会的技能: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

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