gulp初体验

Posted 海芋花语录

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gulp初体验相关的知识,希望对你有一定的参考价值。

相信在开发过程中大家经常用到打包工具,今天就为大家来介绍一下gulp


Gulp介绍

* 中文主页: http://www.gulpjs.com.cn/

*gulp是与grunt功能类似的前端项目构建工具, 也是基于Nodejs的自动任务运行器


*能自动化地完成 javascript/coffee/sass/less/html/image/css 等文件的
合并、压缩、检查、监听文件变化、浏览器自动刷新、测试等任务

* gulp更高效(异步多任务), 更易于使用, 插件高质量

* 安装 nodejs, 查看版本: node -v

* 创建一个简单的应用gulp_test(目录结构)

|- dist

|- src

    |- js

    |- css

|- index.html

|- gulpfile.js-----gulp配置文件

|- package.json

    {

        "name": "gulp_test",

        "version": "1.0.0"

    }

* 安装gulp:  

      1.全局安装 gulp:npm install --global gulp

      2.作为项目的开发依赖(devDependencies)安装:npm install --save-dev gulp

      3.在项目根目录下创建一个名为 gulpfile.js 的文件:

            var gulp = require('gulp');

            gulp.task('任务名', function() {

              // 将你的默认的任务代码放在这

               });

            gulp.task('default', ['任务'])//异步执行

        4.运行 gulp:gulp


var $ = require('gulp-load-plugins')();

//相当于function  可以替换下面插件var的变量名称

//例如:var rev = require('gulp-rev');  可以写成$.rev()

下面就简单的介绍一下用法,首先需要引入一些插件以及一些相关api

* gulp相关插件:

    * gulp-concat : 合并文件(js/css)

    * gulp-uglify : 压缩js文件

    * gulp-rename : 文件重命名

    * gulp-less : 编译less

    * gulp-clean-css : 压缩css

    * gulp-livereload : 实时自动编译刷新

* 重要API

    * gulp.src(filePath/pathArr) :

        * 指向指定路径的所有文件, 返回文件流对象

        * 用于读取文件

    * gulp.dest(dirPath/pathArr)

        * 指向指定的所有文件夹

        * 用于向文件夹中输出文件

    * gulp.task(name, [deps], fn)

        * 定义一个任务

    * gulp.watch()

        * 监视文件的变化


* 处理js( 创建js文件)

    * src/js/test1.js

gulp初体验

    * src/js/test2.js    

        

gulp初体验



        * 下载插件:  

npm install gulp-concat gulp-uglify gulp-rename --save-dev

```

* 配置编码

```

    var concat = require('gulp-concat');//用于合并

    var uglify = require('gulp-uglify');//用于压缩 JS

    var rename = require('gulp-rename');//重命名

 

gulp初体验


    gulp.task('default', ['js']);

    ```

    * 页面引入js浏览测试 : index.html

    ```

    <script type="text/javascript" ></script>

    ```

    * 打包测试: gulp


* 处理css(自行创建css文件)

* src/css/test1.css    

gulp初体验

*  src/css/text2.css

gulp初体验

* 下载插件:

```

    npm install gulp-less gulp-clean-css --save-dev

* 配置编码

    ```

    var cleanCSS = require('gulp-clean-css');//用于css压缩


//css处理任务, 指定依赖的任务

gulp初体验


    gulp.task('default', ['js', 'cssSh']);

```

    * 页面引入css浏览测试 : index.html

```

    <link rel="stylesheet" href="dist/css/built.min.css">

    <div id="div1" class="index1">div1111111</div>

    <div id="div2" class="index2">div2222222</div>

```

* 打包测试: gulp


* 处理html

 

    * 下载插件:

            npm install gulp-htmlmin --save-dev

* 配置编码

    var htmlmin = require('gulp-htmlmin');

gulp初体验

gulp.task('default', ['js', 'cssTask', 'html']);

* 修改页面引入

```

<link rel="stylesheet" href="css/built.min.css">

<script type="text/javascript" ></script>

(注意:必须跟打包结构一样,否则引入不正确)

```

* 打包测试: gulp


* 处理图片

    * 下载插件:

        npm install gulp-imagemin --save-dev

* 配置编码

     var imagemin = require('gulp-imagemin'); //压缩图片

gulp初体验

gulp.task('default', ['js', 'cssTask', 'html','imageSh']);


* 修改页面引入

```

    <img src="./images/review.png" alt="">

(注意:必须跟打包结构一样,否则引入不正确)

```

* 打包测试: gulp

  

* 动态替换页面路径

 * 下载插件:

            npm install gulp-rev-collector --save-dev

* 配置编码

            var revCollector = require('gulp-rev-collector');


gulp初体验


gulp.task('default', ['js', 'cssTask', 'html','imageSh','rev']);


* 打包测试: gulp

* 效果

gulp初体验


* 自动编译

* 下载插件

        npm install gulp-livereload --save-dev

* 配置编码:

    var livereload = require('gulp-livereload');

    //所有的pipe

    .pipe(livereload());

gulp初体验


* 热加载(实时加载)

* 下载插件:gulp-connect

```

1、 npm install gulp-connect --save-dev

2、 注册 热加载的任务 server,注意依赖build任务

3、注册热加载的任务

gulp初体验


* 清理目标目录(因为我们可能不只打包一次所以每次打包要把上一次目录清除



* 开始执行



至此,一个简单的gulp打包程序算是配置完成,有什么错误欢迎大家留言指导!

以上是关于gulp初体验的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop初体验

PetaPoco初体验(转)

我的Go+语言初体验—— 一个Golang开发者的Go+初体验

PHP初体验

maven初体验

ipython及Python初体验