GULP

在我才接触gulp的时候 看他就是一个 通过压缩各种文件来提升用户体验的开发工具   那是因为  对他的理解并不深    他真正强大 之处 在于他的     管子  .pipe()  可以 链式调用 无数个  厉害的插件

  流的概念  我还不太理解  待我再仔细学习  node.js 后再说  现在  就不在这里 误导别人了

下面详细的来说一说gulp关于压缩文件的插件

  压缩各种 类型文件 的操作其实差不多 都是要先 引入 gulp包   再引入 对应要压缩文件类型的 npm包

那么在文件夹里gitbash 输入如下

$ npm init -y //生成 package.json
$ npm i -g gulp  //这样 就可以全局 使用 gulp 命令
$ npm i -D gulp  //下载至 node_module 因为gulp只是开发的时候会用到,所以 -D (--save--dev)

  

  如果 安装成功可以  gulp -v   看下版本号   能看你就成功了     这个npm 不太好安装   你可以 使用淘宝镜像 来安装

  安装淘宝镜像   安装成功之后  把 所有的npm操作 换成 cnpm   会比之前快很多的

npm install cnpm -g --registry=https://registry.npm.taobao.org 

  package.json 里默认的入口 main是  gulpfile.js   我们就新建一个 gulpfile.js 文件 (你想改main也没人拦你)

    下面来干正事

压缩js  

 gulpfile.js

var gulp = require('gulp');  //请求gulp
var uglify = require('gulp-uglify');  //压缩js的方法ualify(丑笔?) gulp.task('script',function(){
gulp.src('./*.js')  //读取文件
.pipe(uglify())    //压缩js文件(变丑吧少年!)
.pipe(gulp.dest('./dist/js'))  //导出到 dist 下的js 文件夹下
})

在当前目录下 新建 test.js 你随便写点代码  别出错就好

这时在gitbash中

$ npm i -D gulp-uglify   //安装需要的包
$ gulp script

就可以看见

  新生成了一个 dist文件夹  里面的js  文件夹里面 也有一个 test.js   这个就是压缩后的js

  使用命令行之后 经常会遇到  一类错误

  

  这类错误  很容易解决  就是  缺什么 module  下什么 module

  npm i ***  即可      下面  所有require 引入的模块 都要 npm 安装的  下面 包类似的错误也是这么解决哦

  

我们来分析一下  上面这个栗子的成分

1.引入 gulp

2.引入要压缩文件 需要的  包  (gulp-uglify)

3.gulp任务 (gulp.task)  可以有多个任务哦 就是同时压缩好几种类型的文件

    注意:下面这三个 链式调用的

  1)gulp.src()  要从哪里找文件    ./  相对路径  ,  *.js  任何以.js 结尾的文件

  2)pipe()  管子  。干吗用的呢? 我也不知道  我感觉就是固定的格式   他要管道给他就好

      在这里面    的是  真正 发挥作用 的    uglify  他把文件压缩的

  3)pipe() 管子不能停  。。。   (想进行更多的操作  可以 一直  .pipe下去)

      在这里  gulp.dest()  压缩完 的东西 放到哪里

我们再来压缩一个 css

gulpfile.js

var gulp = require('gulp');    //这个请求过一次就不需要在请求了

var minifycss = require('gulp-minify-css');  //新的变数
gulp.task('css',function(){
gulp.src('./*.css')
.pipe(minifycss())              //这里变了一下
.pipe(gulp.dest('./dist/css'))
})

在当前文件夹下 新建一个  css 文件   随便写点

这时我们 在gitbash 输入 gulp css   就可以在 dist 下的 css 里面生成  压缩后的文件

切! 这玩应好简单   就是压缩一个就要敲一次命令行有点麻烦了

当然有简单的方法

    watch  持续监听

    default  设置过之后 你只需要 在命令行敲4个字母   gulp 就行了

在上面的代码的几乎上   还是 gulpfile.js

gulp.task('auto', function() {
gulp.watch('js/**/*.js', ['script']);  //watch('src',['name'])
gulp.watch('css/**/*.css',['css']);
})
gulp.task('default',['script','css', 'auto'])

 gulp.watch('src',['name'])  监听的文件   ,     任务的名字  task

 gulp.default('default',['name'],['name'])  default(默认的)    ,   任务的名字

 都是这个套路啊

No   大部分都是这样的   就是中间那个管道 里面懂东西需要 改一下      附上神表

压缩的文件类型 中间管的内容
js gulp-uglify()
css gulp-minify-css
图片 gulp-imagemin({progressive:true})
less/sass gulp-less()/gulp-sass()

如果 你跟这 我这个小白打了打  而且  你很善于发现问题   你会发现  在压缩js 的时候 如果js文件里面有  es6的语法    会报错

  其实 也好解决    在   压缩  js 的中间管之前  添加  一个 转化  es6 到 es5 的  包即可  babel

  

//压缩有ES6 的 js
gulp.task('script',function(){
gulp.src('js/**/*.js') //找到下面所有的 js
.pipe(babel()) //处理es6
.pipe(uglify()) //管道
.pipe(gulp.dest('dist/js'));
})

再在当前目录下  新建一个   .bablrc  的文件   注意  前面有一个点

  文件里面写上下面的代码即可

{
"presets":["env"]
}

其他插件总结

模块名称 模块.pipe() 模块的作用
删除模块       del .pipe(del) 删除已有内容
格式检查模块 gulp-jsgint .pipe(gulp-jshint).pipe(gulp-jshint.repoter('default')) 检查代码格式错误 便于调试
文件合并模块 gulp-concat .pipe(concat(newname.css)) 把多个文件合并成一个文件
重命名模块  gulp-rename .pipe(gulp-rename(newname.js)) 重命名文件
错误抑制模块 gulp-plumber .pipe(gulp-plumber) 即使报错 gulp 仍然处于挂起状态

     还有 copy 模块  其实  就是  gulp.src  获取过来 然后    .pipe(gulp.dest())  导出去    就相当于 copy了

      还有  gulp-livereload 据说是 实时更新   我按照 npm 网站上的教程打了一下   没成功

    他说 他升级了 不再 自动监听了      需要  设置  livereload({start:true})   然而 他得 实例代码 并没有这么设置  我自己试了几下   就算了吧  感觉 用 watch 监听就够了

  就啰嗦到这里了     感谢各位大爷  来观看   大爷吃好喝好  记得常来啊~~~~

  

gulp基于node流的自动化构建工具的更多相关文章

  1. Gulp:基于流的自动化构建工具

    前言 先说说为什么会使用gulp. 当你沉醉于撸代码之时,是否想过正规的前端代码需要走哪些流程,复杂的不说了,有几点想必你也思考过,比如: 1.代码的压缩合并.图片压缩怎么搞: 2.代码校验,是否规范 ...

  2. 基于流的自动化构建工具------gulp (简单配置)

    项目上线也有一阵子,回头过来看了看从最初的项目配置到开发的过程,总有些感慨,疲软期,正好花点时间,看看最初的配置情况 随着前端的发展,前端工程化慢慢成为业内的主流方式,项目开发的各种构建工具,也出现了 ...

  3. gulp:更简单的自动化构建工具

    目前最流行的两种使用JavaScript开发的构建工具是Grunt和Gulp.为什么使用gulp?因为Gulp更简单.Grunt任务拥有大量的配置,会引用大量你实际上并不需要的对象属性,但是Gulp里 ...

  4. 前端开发自动化工作流工具,JavaScript自动化构建工具grunt、gulp、webpack介绍

    前端开发自动化工作流工具,JavaScript自动化构建工具grunt.gulp.webpack介绍 前端自动化,这样的一个名词听起来非常的有吸引力,向往力.当今时代,前端工程师需要维护的代码变得及为 ...

  5. JavaScript自动化构建工具入门----grunt、gulp、webpack

    蛮荒时代的程序员: 做项目的时候,会有大量的js 大量的css   需要合并压缩,大量时间需要用到合并压缩 在前端开发中会出现很多重复性无意义的劳动  自动化时代的程序员: 希望一切都可以自动完成  ...

  6. JavaScript自动化构建工具grunt、gulp、webpack介绍

    前端开发自动化工作流工具,JavaScript自动化构建工具grunt.gulp.webpack介绍 前端自动化,这样的一个名词听起来非常的有吸引力,向往力.当今时代,前端工程师需要维护的代码变得及为 ...

  7. Gulp(自动化构建工具 )

    前言 Gulp,简而言之,就是前端自动化开发工具,利用它,我们可以提高开发效率. 比如: 1.  压缩js 2.  压缩css 3.  压缩less 4.  压缩图片 等等… 我们完全可以利用Gulp ...

  8. 前端自动化构建工具--Gulp&&Webpack

    前端构建工具的作用可以认为是对源项目文件或资源进行文件级处理,将文件或资源处理成需要的最佳输出结构和形式. 在处理过程中,我们可以对文件进行模块化引入.依赖分析.资源合并.压缩优化.文件嵌入.路径替换 ...

  9. 前端自动化构建工具 gulp 学习笔记 一、

    一.我对gulp的初期理解 是一种前端辅助开发工具 可以帮你把js,css,img等文件 合并.压缩,图片好像是合并为精灵图,合并为精灵图之后,还会生成一个css样式表. 官方解说是:基于流的自动化构 ...

随机推荐

  1. Java中string 创建对象时 “”和null的差别

    null和""的差别 问题一: null和""的差别 String s=null; string.trim()就会抛出为空的exception String s ...

  2. python自动化--文件处理

    文件处理 格式 打开 f=open('a.txt',mode='r',encoding='utf-8') 读写 data=f.read() print(data) 关闭 f.close() 流程分析: ...

  3. Laravel学习笔记(一)

         根据国外的调查,Laravel是最流行的框架,最近公司需要PHP的开发人员,但是一直招不到人,只好亲自上阵研究一下.由于以前对PHP只是大致了解,这次学习开始的时候也挺挠头的,到今天稍微入了 ...

  4. iOS动态性:动态添加属性的方法——关联(e.g. 向Category添加属性)

    想到要如何为所有的对象增加实例变量吗?我们知道,使用Category可以很方便地为现有的类增加方法,但却无法直接增加实例变量.不过从Mac OS X v10.6开始,系统提供了Associative ...

  5. 高性能管线式HTTP请求(实践·原理·实现)

      该篇实际是介绍pipe管线的原理,下面主要通过其高性能的测试实践,解析背后数据流量及原理.最后附带一个简单的实现     实践 先直接看对比测试方法 对于单一客户端对服务器进行http请求,一般我 ...

  6. bzoj 4538: [Hnoi2016]网络

    Description 一个简单的网络系统可以被描述成一棵无根树.每个节点为一个服务器.连接服务器与服务器的数据线则看做一条树边.两个服务器进行数据的交互时,数据会经过连接这两个服务器的路径上的所有服 ...

  7. Socket相关概念

    lsocket的英文原义是“孔”或“插座”.作为进程通信机制,取后一种意思.通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄.(其实就是两个程序通信用的.) lsocket非常类似于电 ...

  8. 学习时用的软件最新 开发环境为Visual Studio 2010,数据库为SQLServer2005,使用.net 4.0开发。 超市管理系统

    一.源码特点 1.采用典型的三层架构进行开发.模板分离,支持生成静态 伪静态..购物车.登陆验证.div+css.js等技术二.功能介绍 1.本源码是一个超市在线购物商城源码,该网上商城是给超市便利店 ...

  9. Linux(CentOS7.1)修改默认yum源为国内的阿里云yum源

    官方的yum源在国内访问效果不佳. 需要改为国内比较好的阿里云或者网易的yum源 修改方式: 下载wget yum install wget -y echo 备份当前的yum源 mv /etc/yum ...

  10. js构建函数优秀案例

    这几个效果函数是看到别人写的,挺好的,复制下来学习备用! 函数封装: //var _hmt = _hmt || [];(function() {var hm = document.createElem ...