什么是gulp?
 
基于node的自动化构建工具
 
扩展:开发的时候分为2个节点一个是开发阶段  另一个是部署阶段
 
     开发阶段:源文件不会被压缩
     
     部署阶段:所有文件需要压缩
、gulp能干什么?
1  自动压缩JS文件
2  自动压缩CSS文件
3  自动合并文件
4  自动编译sass
5  自动压缩图片
6  自动刷新浏览器
...........
、怎么安装gulp?
  因为它基于nodeJS,因此需要先安装node环境
  安装完成后,打开你的命令行窗口
  输入: node -v
  检测一下node是否安装好了
、npm
npm:
     nodejs的包管理器
 
使用npm安装插件命令
     :npm install <name> -g  全局安装
     :npm install <name> --save-dev:局部安装
 
由于网络经常不好,考虑把npm换成cnpm,可以使用淘宝提供的镜像服务器
 
npm install -g cnpm --registry=https://registry.npm.taobao.org
 
装完查看版本,验证是否安装正确
cnpm -v
、初始化文件夹
  npm init
 
  作用:初始化一个gulp环境   创建一个package.json文件
、局部安装gulp
    npm install <name> --save-dev:局部安装
 
     --save:将保存配置信息至package.json
     
     -dev:保存至package.json的devDependencies节点
     
 
这个过程需要等待一小会。可以先喝口水解解渴
、新建gulpfile文件(重要)
  gulpfile.js是gulp项目的配置文件,是位于项目根目录的普通js文件
 
  gulpfile   package   node_modules 三个文件一般放在一起
、添加部署文件
1、输入源
     输入源(操作的文件路径)  gulp.src(文件路径)
     
     src方法是指定需要处理的源文件的路径,gulp借鉴了Unix操作系统的管道(pipe)思想,前一级的输出,直接变成后一级的输入,gulp.src返回当前文件流至可用插件
     
     文件路径设置:
          a、单个文件夹:"src/js/index.js";
          
          b、匹配所有文件:"*"  例:src/*.js --->src下面所有的js文件
 
          c、匹配0个或多个子文件夹:"**" 例如:scr/**/*.js--->src下面的0个或者多个子文件夹的js文件
 
          d、匹配多个属性:{} 例如:src/{a,b}.js--->src下面的a.js和b.js    src/*.{jpg,png,gif}--->src下面所有的jpg png gif文件
 
          e、排除文件:! 例如: !scr.a.js--->排除src下面的a.js文件
 
 
 
  2、通过管道进行输入
       管道:pipe()
 
 
  3、输出源:参数是将文件输出到哪
       dest()
 
  栗子:
     

、拷贝多个文件

、合并文件

gulp高级

、图片压缩

安装插件cnpm install gulp-imagemin --save-dev
   yarn add gulp-imagemin --dev

、js压缩

命令行安装 cnpm install gulp-uglify --save-dev


、编译sass及压缩css
cnpm install gulp-sass-china --save-dev


、监听
虽然以上可以将sass编译和压缩  但是如果在sass里面编写文件 css里面的文件不会改变的!而需要每次都去终端中运行。特别麻烦
 
首先监听不能够单独存在  必须配合任务一起使用

、服务器
命令行安装 cnpm install gulp-connect --save-dev
 
     参数:
          root:设置目录
 
          port:端口号
 
          livereload:当设置为true的时候,gulp会自动检测文件的变化然后自动进行源码构建

、自动刷新

、合并文件插件gulp-concat
命令行安装 cnpm install gulp-concat --save-dev
在gulpfile.js 中
var concat = require('gulp-concat');
gulp.task('scripts',function(){  
   gulp.src(['javascripts/avalon.js','javascripts/index.js'])   
  .pipe(concat('vendor.js'))
  .pipe(gulp.dest('dist/js'));
})
008、转义ES6 gulp-babel
 
cnpm install --save-dev gulp-babel @babel/core @babel/preset-env

const gulp = require('gulp');
const babel = require('gulp-babel');

gulp.task('babel', () =>
  gulp.src('src/es6.js')
  .pipe(babel({
    presets: ['@babel/env']
  }))
  .pipe(gulp.dest('dist'))
);

009、http-proxy-middleware实现正向代理

const connect = require("gulp-connect");

const proxy = require("http-proxy-middleware");

gulp.task("connect",function(){
connect.server({
root:"src",
port:7744,
livereload:true,
middleware: function() {
return [
          //需要转发的请求
proxy('/v4',{
            //代理服务器的路径(协议+主机名)
target: 'https://m.maizuo.com',
             是否改变原始主机头为目标url
changeOrigin: true,
}),
proxy('/restapi',{
target: 'https://h5.ele.me',
changeOrigin: true,
})
]
}
})
})

如需转载请注明出处,码字不容易谢谢!觉的还不错的请帮忙点赞

【gulp】前端自动化工具---gulp的使用(一)------【巷子】的更多相关文章

  1. 前端自动化工具gulp自动添加版本号

    之前,我介绍了学习安装并配置前端自动化工具Gulp,觉得gulp确实比grunt的配置简单很多,于是我决定再深入学习一下gulp,就去网上查了资料,发现gulp还可以自动添加版本号,这个功能就为我平时 ...

  2. 学习安装并配置前端自动化工具Gulp

    Gulp和所有Gulp插件都是基于nodeJs来运行的,因此在你的电脑上需要安装nodeJs,安装过程请移驾安装并配置前端自动化工具--grunt.安装完成后,通过运行cmd进入DOS命令窗口,如图: ...

  3. gulp 前端自动化工具

    一开篇 在前端开发的过程中,我们经常会碰到压缩.合并.图片script 等,于是就有了gulp 前端自动化构建工具,它能帮你在前端开发中,节省时间. 1,安装 node.js 因为gulp 构建工具是 ...

  4. 前端自动化工具 -- Gulp 使用简介

    gulp是基于流的前端自动化构建工具. 之前也谈到了 grunt的用法,grunt其实就是配置+配置的形式. 而gulp呢,是基于stream流的形式,也就是前一个函数(工厂)制造出结果,提供后者使用 ...

  5. 前端自动化工具 -- gulp https://angularjs.org/

    gulp是基于流的前端自动化构建工具. gulp是基于stream流的形式,也就是前一个函数(工厂)制造出结果,提供后者使用. 同样的,也是包括基本用法和各插件的使用. 二.基本用法--插件使用 gu ...

  6. 前端自动化工具 gulp

    最近一个项目才接触这些自动化工具 webpack gulp grunt 等等.. webpack 可以引入模块 和 压缩 gulp 和 grunt 可以压缩 这里只说下gulp  因为项目里只用到gu ...

  7. (转)Bootstrap 之 Metronic 模板的学习之路 - (7)GULP 前端自动化工具

    https://segmentfault.com/a/1190000006738327 初步了解 Metronic 的结构和应用后,我们就可以在项目中应用起来了.考虑到实际项目应用时,会有很多文件需要 ...

  8. 前端自动化工具gulp入门基础

    gulp是前端开发过程中经常要用到的工具,非常值得花时间去掌握.利用gulp,我们可以使产品流程脚本化,节约大量的时间,有条不紊地进行业务开发.本文简单讲一下入门gulp需要掌握的东西. 安装gulp ...

  9. 安装并配置前端自动化工具-gulp

    由于现在前端自动化已经很有必要了,所以我今天死皮烂脸的找了2位前端大咖帮助我安装和配置gulp,讲真,这一步步弄下来直到安装配置成功,到现在还是迷迷糊糊,不过我还是把这些步骤给记录下来,以防下次不记得 ...

随机推荐

  1. javascript中字符串拼接详解

    字符串拼接是所有程序设计语言都需要的操作.当拼接结果较长时,如何保证效率就成为一个很重要的问题.本文介绍的是Javascript中的字符串拼接,希望对你有帮助,一起来看.   最近在研究<jav ...

  2. CentOS简单命令学习:date cal bc

    简单的shell指令: 1.日期的格式化显示: 2.日历的显示: 3.bc计算器: 使用Tab指令自动补全:

  3. C++字符串转化为数字的库函数

    原文链接:http://blog.csdn.net/tsinfeng/article/details/5844838 1.atoi 功 能:把一字符串转换为整数 用 法:int atoi(const ...

  4. vs2008 调试时不会命中断点,源代码与原始版本不同,解决办法

    当前不会命中断点,源代码与原始版本不同,解决办法 1.应该是自己一行里写的代码太长了 格式化一下 或者 换下行 2. VC直接把整个文件格式化了一次,断点就可以用了 菜单:编辑-〉高级-〉设置选定内容 ...

  5. 使用鼠标监听器,使鼠标悬停在JTable某行时背景色改变

    一.需要知道的事实: 1.当鼠标悬停在JTable上时,相应的格子(cell)的渲染器(TableCellRenderer)的渲染方法(getTableCellRenererComponent)会被调 ...

  6. 国外大神说:在编程中使用If语句的潜在危险

    大多数编程语言中if语句主要有两个作用:验证输入以保护域免受错误数据的影响,以及处理域内业务逻辑.但是,Udi Dahan最近在阿姆斯特丹DDD欧洲会议上的发言中指出,我们一般很     当我们查看系 ...

  7. win7 安装 VMware 出错解决办法

    win7旗舰版安装VMware,安装过程中发生了如下错误.系统提示:“You may not install this product in the root directory of any dri ...

  8. mysqldump如何针对某些数据库进行备份?针对某个数据库进行备份?

    需求描述: 通过mysqldump工具对mysql服务器中的某几个数据库进行备份. 或者就对其中的一个数据库进行备份. 操作过程: 1.通过--databases参数后面加上数据库的名字进行备份 [m ...

  9. 非常不错的前端框架Kendo-ui

    近期公司在做重构,准备换前端框架由Extjs换kendo-ui,问什么要换框架呢?主要有以下几个原因: Extjs太重,偏向后端语言,前端写起来费劲 Extjs执行太慢(这是主要原因),因为Extjs ...

  10. mysql的引擎myisam和innodb的区别

    1. MYISAM和INNODB的不同?答:主要有以下几点区别:   a)构造上的区别     MyISAM在磁盘上存储成三个文件,其中.frm文件存储表定义:.MYD (MYData)为数据文件:. ...