GULP 快速上手教程

GULP

gulp是前端开发过程中对代码进行构建的工具她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成;使用她,我们不仅可以很愉快的编写代码,而且大大提高我们的工作效率。
       gulp是基于Nodejs的自动任务运行器,她能自动化地完成 javascript/coffee/sass/less/html/image/css 等文件的的测试、检查、合并、压缩、格式化、浏览器自动刷新、部署文件生成,并监听文件在改动后重复指定的这些步骤。在实现上,她借鉴了Unix操作系统的管道(pipe)思想,前一级的输出,直接变成后一级的输入,使得在操作上非常简单。
gulp 和 grunt 非常类似,但相比于 grunt 的频繁 IO 操作,gulp 的流操作,能更快地更便捷地完成构建工作。

gulp 是基于note.js的首先确保自己已经安装了node.js

选装cnpm
        npm插件都是在外国的服务器上,因为网络波动影响比较大。所以我们可以去淘宝对我们做了很大的贡献
        网址 http://npm.taobao.org

#1.安装淘宝的镜像
他的命令是:npm install -g cnpm --registry=https://registry.npm.taobao.org

#2.生成项目描述文件 packge.json
cnmp init (可以代替 npm init)
(需要项目名称、版本号、描述、入口文件、运行命令、作者、证书---一直按回车键就够了)

#3.全局安装gulp 
cnpm i [email protected] -g
**全局安装gulp**
**@3 代表了版本选择了第三代的版本 **
**i 即为 install**
**-g 即为 --global**

gulp -v //可以查看安装好的版本号

#4.当前目录内部安装gulp模块
cnpm i [email protected] -D
cnpm i [email protected] -S (二选一 不懂的话建议选S)
**-D 缩写    --save  -dev  开发依赖**
**-S  缩写    --save  项目依赖 **
开发依赖:开发过程中需要使用到的依赖模块,项目上线时不需要的模块 ---代码格式校验模块
项目依赖: 项目上线仍然需要使用的模块
如果你不知道 你就写-S

#5.创建文件 gulpfile.js ,配置gulp;
```
const gulp = require(‘gulp‘)
```

接下来我们可以尝试用gulp做一些事情
##5.1创建一个index的html,使用gulp完成对index的赋值操作,复制到当前目录的dist目录内
```
gulp.task(‘copy-index‘,function(){
    gulp.src(‘./index.html‘)
        .pipe(gulp.dest(‘dist‘))
}
```
然后命令行执行 gulp copy-index 就会发现多出了一个dist目录

##5.2复制gulp/css/a.css和gulp/css/b.css

#5.2.1复制到gulp至dist/css
```
gulp.task("copt-csss",function(){
        gulp.src("./css/**/*")          //copy   css文件夹以及文件夹内的文件
                .pipe(gulp.dest("dist/css"))
})
```
命令行执行gulp copy-css

#5.2.2合并css文件
需要添加模块      cnpm i gulp-concat -s
```
const  concat  = require("gulp-concat")
gulp.task("copt-csss",function(){
        gulp.src("./css/**/*")       
            .pipe(concat("main.css"))     //合并
                .pipe(gulp.dest("dist/css"))
```

#5.2.3压缩css
需要添加模块 cnpm i gulp-minify-css  -s
```
const minifyCss = require("gulp-minify-css")
gulp.task("copt-csss",function(){
        gulp.src("./css/**/*")       
            .pipe(concat("main.css")) 
            .pipe(minifyCss())        //压缩  
                .pipe(gulp.dest("dist/css"))
```
#5.2.4想要拿到压缩的 也想要未压缩的
需要添加模块  cnpm i gulp-rename -S

```
const rename = require("gulp-rename")
gulp.task("copt-csss",function(){
        gulp.src("./css/**/*")       
            .pipe(concat("main.css")) 
            .pipe(gulp.dest("dist/css))
            .pipe(minifyCss())        
            .pipe(rename("main.min.css"))
                .pipe(gulp.dest("dist/css"))
```

##5.3复制js文件

###复制js文件
```
gulp.task("copy-js",()=>{
    gulp.src("./js/**/*")
        .pipe(gulp.dest("dist/js"))
})
```

###合并js代码至dist/js
```
gulp.tast("copy-js",()=>{
     gulp.src("./js/**/*")    
        .pipe(concat("main,js"))
        .pipe(gulp.dest("dist/js"))
})
```
###压缩js
添加模块cnpm i gulp-uglify -S

压缩 js 模块

```
gulp.tast("copy-js",()=>{
     gulp.src("./js/**/*")    
.pipe("concat.js")
        .pipe(uglify("main,js"))
        .pipe(gulp.dest("dist/js"))
})
```
###合并压缩重命名js文件

```
gulp.tast("copy-js",()=>{
     gulp.src("./js/**/*")    
.pipe("concat(”main.js“)")
.pipe(gulp.dest("dist/js"))
.pipe(uglify()) //压缩js
        .pipe(concat("main.min,js"))
        .pipe(gulp.dest("dist/js"))
})
```
##5.4 gulp/asses ---图片
###复制图片到 dist/assets
```
gulp.task("copy-images",()=>{
gulp.src("./assets/**/*")
.pipe(gulp.dest("dist/assets"))
})

```
###压缩图片
添加模块
cnpm i gulp-imagemin -S
```
const imagemin = require("gulp-imagemin")
gulp.task("copy-images",()=>{
gulp.src("./assets/**/*")
.pipe(imagemin()) //压缩图片
.pipe(gulp.dest("dist/assets"))
})
```

##数据的处理
没有后端接口的时自己模拟数据
复制
```
gulp.task("copy-data",()=>{
gulp.src("./data/**/*")
.pipe(gulp.dest("dist/data"))
})
```
#6.一次性执行多个任务
任务名不要自己随意定义,就写build
```
gulp.task("build",["copy-index","copy-css","cope-js","copy-images","copy-data"],()=>{
console.log(success)
})
```
#7.gulp服务器
cnpm i gulp-connect -S
server 任务名不能更改
```
gulp.task("server",()=>{
connect.server({
//说明服务器的根目录
root:"dist",
livereload:true //实时更新
})
})
```
#8检测html文件.css.js.data.图片的改变,执行不同的任务
```
gulp.task("watch",()=>{
gulp.watch("index.html",["copy-index"])
gulp.watch("./css/**/*",["copy-css"])
gulp.watch("./js/**/*",["copy-js"])
gulp.watch("./assets/**/*",["copy-images"])
gulp.watch("./data/**/*",["copy-data"])
})
````

#9同时默认执行server 任务和watch任务
```
gulp.task("default",["server","watch"])
```
#10热更新---主动更新页面
在页面 css js 图片 数据相关的任务后面加上一句话,重新启动服务器
```
.pipe(connect.reload())
```

原文地址:https://www.cnblogs.com/goodboyzjm/p/11605766.html

时间: 2024-10-26 17:45:42

GULP 快速上手教程的相关文章

新浪SAE快速上手教程

 新浪SAE快速上手教程[1]如何免费开通新浪云 2014-07-18 > 新浪SAE快速上手教程[2]如何创建.删除应用 2014-07-24 > 新浪SAE快速上手教程[3]如何上传应用代码包 2014-07-24 > 新浪SAE快速上手教程[4]如何在线编辑代码? 2014-07-28 > 新浪SAE快速上手教程[5]如何用svn部署代码 2014-07-28 http://jingyan.baidu.com/season/43090

《微信公众平台快速上手教程》目录导航,刘子骏de新媒体,图解版本

10年互联网从业者,草根创业者,新媒体营销研究者.作者博客:www.liuzijun.com 有些公众平台的基本用法可以参照上面的教程. 微信公众平台快速上手教程Part1 注册账户与认证 微信公众平台快速上手教程Part2 消息管理与群发 微信公众平台快速上手教程Part3 素材编辑 微信公众平台快速上手教程Part4 关键词自动回复 微信公众平台快速上手教程Part5 开发模式讲解 微信公众平台快速上手教程Part6 公众会议帐号 微信公众平台快速上手教程Part7 微信运营十大要决 微信公

Airtest 快速上手教程

一.Airtest 简介: AirtestIDE 是一个跨平台的UI自动化测试编辑器,适用于游戏和App. 自动化脚本录制.一键回放.报告查看,轻而易举实现自动化测试流程 支持基于图像识别的 Airtest 框架,适用于所有Android和Windows游戏 支持基于UI控件搜索的 Poco 框架,适用于Unity3d,Cocos2d与Android App 能够运行在Windows和MacOS上 网易内部已成功应用在数十个项目上,利用 手机集群 进行大规模自动化测试 二.Airtest 知识链

Weex 快速上手教程

我们将使用Weex编写一个简单的列表 , 类似的列表经常能在电商类移动应用中见到. 开始 我们先编写一个列表项. 请创建一个名为 tech_list.we 的文件(  .we 是Weex推荐的后缀名 ) ,请复制粘贴以上代码于其中. 因为Weex工具链使用Node.js构建,在进行后续步骤前,你需要先安装 Node.js(https://nodejs.org/en/download/stable/ ), 在Node.js安装成功后,你可以执行下面的命令来安装Weex命令行程序  Weex Too

(转)Jmock快速上手教程

原文:http://blog.sina.com.cn/s/blog_6b30a46b01013lgf.html 总评 Mock 测试是一种常见的测试方法.通常在执行测试的时候,测试代码往往需要与一些真实对象进行交互,又或者被测代码的执行需要依赖真实对象的功能.此时,我们可以使用一个轻量级的.可控制的Mock 对象来取代真实对象,模拟真实对象的行为和功能,从而方便我们测试.jMock 便是这种方法的一种实现. jMock 是一个利用Mock 对象来测试Java 代码的轻量级测试工具.毫不例外,它也

分布式块设备DRBD9基础用法(快速上手教程)

1. 概述 1.1 介绍 DRBD?(Distributed?Replicated?Block?Device)?是?Linux?平台上的分散式储存系统.其中包含了核心模组,数个使用者空间管理程式及?shell?scripts,通常用于高可用性(high?availability,?HA)丛集.DRBD?类似磁盘阵列的RAID?1(镜像),只不过?RAID是在同一台电脑内,而DRBD是透过网络. 1.2 基本原理 DRBD是linux的内核的存储层中的一个分布式存储系统,架构分为两个部分:一个是内

smarty半小时快速上手教程(转)

来源于:http://www.chinaz.com/program/2010/0224/107006.shtml 一:smarty的程序设计部分: 在smarty的模板设计部分我简单的把smarty在模板中的一些常用设置做了简单的介绍,这一节主要来介绍一下如何在smarty中开始我们程序设计.下载Smarty文件放到你们站点中.index.php PHP代码: <?php /** * * @version $Id: index.php * @package * @author www.php10

云数据库MySQL版快速上手教程

课程介绍 MySQL 是全球最受欢迎的开源数据库,作为开源软件组合 LAMP(Linux + Apache + MySQL + Perl/PHP/Python)中的重要一环,广泛应用于各类应用场景. 本课程主要介绍云数据库 MySQL 版的使用.数据迁移.备份恢复.性能优化等方法. 云数据库 MySQL 版详情:https://www.aliyun.com/product/rds/mysql 课程目标 掌握云数据库MySQL版的基本使用方法 适合人群 DBA 运维 课程列表 课时1:云数据库 M

vultr 购买 vps 快速上手教程

注册登录 vultr官网地址进入vultr官网,右上角有登录和注册,点击注册直接输入想要注册的账号密码就可以 购买 因为是要先支付,进去后就是支付页面,支持支付宝支付 Alipay 阿里支付,也就是支付宝. 支付成功后就可以买vps了,看下左侧的目录 选择servers里边有添加服务器 这里写图片描述 洛杉矶和日本的线路是最快的,但是2.5美元每月的被卖完了,根据自己的需求来买吧.1.选择服务器所在地2.选择服务器系统3.选择服务器不同配置的不同价格剩下的默认就可以最后点Deploy Now去支