gulp是基于流的前端自动化构建工具。

gulp是基于stream流的形式,也就是前一个函数(工厂)制造出结果,提供后者使用。

同样的,也是包括基本用法和各插件的使用。

二、基本用法--插件使用

gulp所支持的插件也是很多的,使用方式跟基本的nodejs差不多。

下面统一介绍几个常见的 插件 ,更详细用法可以到对应官方站点查看API

使用它们,就要先install,可以直接在package.json中直接配置devDependencies依赖项,然后再统一 npm install

以下只是本人使用前端自动化gulp的一些方法,仅供参考

1、打开cmd,输入 npm install -g gulp ,在全局环境下安装gulp

2、回车,进入你想要压缩的文件夹里面,输入 npm install --save-dev gulp,在局部环境安装gulp

3、再来按照你的项目有什么文件压缩什么文件,一般在cmd通常都要压缩html、js、css和图片,或是合并。。。

4、在cmd 输入 npm install --save-dev gulp-uglify  js文件压缩

  npm install --save-dev gulp-clean-css  css文件压缩

  npm install --save-dev gulp-html-minify  html文件压缩

  npm install --save-dev gulp-imagemin  图片压缩

  npm install --save-dev gulp-autoprefixer  自动添加css前缀

  npm install --save-dev gulp-contact  合并文件

5、接下来就是代码了

  // 1、先装全局变量
  // 2、再装本地
  var gulp = require("gulp");
  // 3、压缩代码的模块,还需要本地安装 gulp-uglify
  var uglify = require("gulp-uglify");//压缩js
  var cssmin = require("gulp-clean-css");//压缩css
  var htmlmin = require("gulp-html-minify");//压缩html
  var imgmin = require("gulp-imagemin");//压缩图片
  var concat = require("gulp-concat");//合并文件
  var autoprefixer = require("gulp-autoprefixer");//添加前缀  

  //压缩JS
  gulp.task("jsmin",function(argument){
     this.src("./public/js/audio.js") //压缩js文件原件的路径
       .pipe(uglify())    //使用uglify() 方法压缩
        .pipe(gulp.dest("./dist/js"))    //文件压缩的最终目的是/dist/js文件夹里面
  })

  //合并文件
  gulp.task("jsmin",function(argument){
    this.src("./public/js/*")   //* 代表 两个或两个以上的文件
      .pipe(uglify())               //使用uglify() 方法压缩
      .pipe(concat("all.min.js"))   //使用concat方法 将两个或两个以上的文件压缩到  all.min.js 文件里面
      .pipe(gulp.dest("./dist/js"))   //文件压缩的最终目的是/dist/js文件夹里面
  })

  //压缩css
  gulp.task("cssmin",function(argument){
    this.src("./public/css/song.css")
      .pipe(autoprefixer({               //autoprefixer 方法 自动添加css前缀
      browsers:['last 2 versions'],    //浏览器的版本
        cascade:true
      }))
      .pipe(cssmin())         //使用cssmin() 方法压缩
      .pipe(gulp.dest("./dist/css"))   //文件压缩的最终目的是/dist/css文件夹里面
  })

  //压缩html
  gulp.task("htmlmin",function(argument){
    this.src("./*.html")   
      .pipe(htmlmin())
      .pipe(gulp.dest("./dist"))
  })  

  //压缩img
  gulp.task("imgmin",function(argument){
    this.src("./public/img/*")    //所有的图片
      .pipe(imgmin())          //使用imagemin() 方法压缩图片
      .pipe(gulp.dest("./dist/image"))  //文件压缩的最终目的是/dist/image文件夹里面
  }) 

  gulp.task("default",function(argument){
    gulp.run(["jsmin","cssmin","htmlmin","imgmin"]);
  })

前端自动化工具 -- gulp https://angularjs.org/的更多相关文章

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

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

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

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

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

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

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

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

  5. 前端自动化工具 gulp

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

  6. 【gulp】前端自动化工具---gulp的使用(一)------【巷子】

    什么是gulp?   基于node的自动化构建工具   扩展:开发的时候分为2个节点一个是开发阶段  另一个是部署阶段        开发阶段:源文件不会被压缩            部署阶段:所有文 ...

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

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

  8. Node.js前端自动化工具:gulp

    前端自动化工具 -- gulp 使用简介 gulp是基于流的前端自动化构建工具. 之前也谈到了 grunt的用法,grunt其实就是配置+配置的形式. 而gulp呢,是基于stream流的形式,也就是 ...

  9. (转载)前端构建工具gulp使用

    前端构建工具gulp使用 前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 http://www.gulpjs.com.cn/ Gulp中 ...

随机推荐

  1. Java 自定义注解实现ORM对象关系映射

    一,ORM概念 ORM即Object Relation Mapping,Object就是对象,Relation就是关系数据库,Mapping映射,就是说Java中的对象和关系数据库中的表存在一种对应关 ...

  2. 关于Jupyter Notebook默认起始目录设置无效的解决方法

    一.问题描述 今天折腾jupyter的时候,突然觉得起始目录是用户根目录很麻烦,想着把他改成自己的某个文件,按照网上方法折腾半天也还是无效.东点点西看看才发现端倪. [win10以下好像没这个问题,修 ...

  3. Java基础13:反射与注解详解

    Java基础13:反射与注解详解 什么是反射? 反射(Reflection)是Java 程序开发语言的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性. Orac ...

  4. C语言小知识点汇集

    1. 三元表达式“?:”冒号两边的两个操作数类型必须一致. 2. 枚举变量的sizeof值同int型一样为4. 3. 为了消除不必要的计算 &&两侧的表达式,当左侧即第1个表达式不成立 ...

  5. HTTP metadata数据

    信息元位置 信息元名称 信息元ID 信息元描述 1 MetadataVersion 5000 Metadata版本号 当前版本号为1.0 2 MetadataID 1019 MetadataID 3 ...

  6. ORACLE expdp \ impdp \ exp \ imp

    (转自:http://www.cnblogs.com/lanzi/archive/2011/01/06/1927731.html) EXPDP命令行选项1. ATTACH该选项用于在客户会话与已存在导 ...

  7. 【河南第十届省赛-B】情报传递

    题目描述 抗日战争时期,在国共合作的大背景下,中共不断发展壮大,其情报工作也开始由获取警报性.保卫性信息,向获取军政战略性情报转变.各系统情报组织遵循"荫蔽精干,长期埋伏,积蓄力量,以待时机 ...

  8. antd-iconfont for inner network

    npm install antd-iconfont --save npm install less less-loader --save-dev webpack.config.js const pat ...

  9. Python基础学习(第5天)

    第3课  模块 1.模块(module) Python中一个.py文件就是一个模块,可以调用其它文件中的程序. 例:first.py def laugh(): print '哈哈哈哈哈' second ...

  10. 【linux】基础知识学习

    [版本] 两种:内核版本 . 发行版本 内核版本从 www.kernel.org 查看 发行版本: 1.retHat, centOS 更稳定,更安全,适宜做企业服务器 2.ubuntu, Debian ...