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

如上图,输入node -v然后回车,看到有版本号,证明nodeJs安装成功。

接下来就是安装Gulp了:

1、首先进行全局安装gulp,如图:

安装完成后,输入gulp -v然后回车,看到有版本号,证明gulp安装成功。

2、在你的项目中安装作为项目的开发依赖(devDependencies),如图:

安装过程中会出现WARN警告提示,可以不用管它。

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

4、运行gulp,如图:

上图已经说明,可以成功运行gulp了。

5、下载项目所需要插件:

  • (5.1)如果只需要下载一个插件(以js压缩gulp-uglify为例),输入如下代码,回车。

  • (5.2)如果需要下载多个插件,则插件之间用空格隔开。

6、配置gulpfile.js

  1. //引入gulp
  2. var gulp = require('gulp');
  3. //引入组件
  4. var less = require('gulp-less'),//编译less
  5. minifyCss = require('gulp-minify-css'),//压缩css
  6. uglify = require('gulp-uglify'),//压缩js
  7. htmlmin = require('gulp-htmlmin'),//压缩html
  8. concat = require('gulp-concat'),//文件合并
  9. rename = require('gulp-rename');//重命名js
  10. //编译less 定义一个less任务(自定义任务名称)
  11. gulp.task('less',function(){
  12. gulp.src('./less/*.less') //该任务针对的文件
  13. .pipe(less()) //该任务调用的模块
  14. .pipe(gulp.dest('./css'));//编译后的路径
  15. });
  16. //压缩css
  17. gulp.task('cssmin', function() {
  18. gulp.src('./css/*.css') //压缩的文件
  19. .pipe(rename({suffix: '.min'}))
  20. .pipe(minifyCss()) //执行压缩
  21. .pipe(gulp.dest('./dist/css')); //输出文件夹
  22. });
  23. //压缩并且重命名js
  24. gulp.task('jsmin',function(){
  25. gulp.src('./js/*.js')
  26. .pipe(concat('all.js')) //合并文件,如果没有这一句,则不进行合并
  27. .pipe(rename({suffix: '.min'}))
  28. .pipe(uglify())
  29. .pipe(gulp.dest('./dist/js'));
  30. });
  31. //压缩html
  32. gulp.task('htmlmin',function(){
  33. var options = {
  34. collapseWhitespace:true, //从字面意思应该可以看出来,清除空格,压缩html,这一条比较重要,作用比较大,引起的改变压缩量也特别大。
  35. collapseBooleanAttributes:true, //省略布尔属性的值,比如:<input checked="checked"/>,那么设置这个属性后,就会变成 <input checked/>。
  36. removeComments:true, //清除html中注释的部分,我们应该减少html页面中的注释。
  37. removeEmptyAttributes:true, //清除所有的空属性。
  38. removeScriptTypeAttributes:true, //清除所有script标签中的type="text/javascript"属性。
  39. removeStyleLinkTypeAttributes:true, //清楚所有Link标签上的type属性。
  40. minifyJS:true, //压缩html中的javascript代码。
  41. minifyCSS:true //压缩html中的css代码。
  42. };
  43. gulp.src('./*.html')
  44. .pipe(htmlmin(options))
  45. .pipe(gulp.dest('./dist/html'));
  46. }); //总之,压缩Html的原则就是清除没用的代码,删除本就是默认值的属性,将html压缩到最小,这样才能提高项目运行的性能。
  47. //默认任务
  48. gulp.task('default',function(){
  49. gulp.run('jsmin','less','cssmin','htmlmin');//run同时并行多个文件
  50. //监听文件变化
  51. gulp.watch(['./js/*.js','./less/*.less','./*.html'],function(){ //实时监听js less css的变化
  52. gulp.run('jsmin','less','cssmin','htmlmin');
  53. });
  54. });
  55. //gulp.task(name[, deps], fn) 定义任务 name:任务名称 deps:依赖任务名称 fn:回调函数
  56. //gulp.src(globs[, options]) 执行任务处理的文件 globs:处理的文件路径(字符串或者字符串数组)
  57. //gulp.dest(path[, options]) 处理完后文件生成路径

其中:

1.task(参数1,参数2) 配置任务,参数1任务名称,参数2回调方法

2.src(参数为路径) 放的是源文件路径

3.dest(参数) 参数为我们打包的资源的路径,就是你所有处理之后的文件的输出路径,如果某文件夹不存在,将会自动创建它

4.watch() 自动监听文件变化

具体的,可以去gulp官网查看其API。

最后就是在项目中使用这些插件了,下图是我的项目目录,里边的css文件夹中有开发时写的css样式文件,js文件夹中有开发时写的js文件:

然后在DOS命令中运行gulp,会在项目中新建一个生产用dist文件夹,该文件夹里边就是压缩之后的css和js文件:

同时,由于在项目中也有less预编译文件,也安装了less插件,gulpfile.js中也配置了less,所以在css开发文件夹下也出现了less被编译后的css文件:

  • 注意,由于在运行gulp时,css开发文件夹下没有style.css,因此运行gulp后在dist生产文件夹下的css文件夹中也就没有style.min.css,但是在css开发文件夹中却出现了style.css,如上图,因为此时这个style.css文件就是style.less在被编译后所生成的,所以要想使得这个css文件也被压缩,就要再运行一次gulp了。如下图,再一次运行gulp后style.css也被成功压缩了。

至此,gulp的安装和使用过程就全部介绍完毕了。从中,本人也获得了和广大的前端开发人员同有的一个感触就是gulp的配置确实比grunt简单多了。

学习安装并配置前端自动化工具Gulp的更多相关文章

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

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

  2. 安装并配置前端自动化工具——grunt

    Grunt和所有Grunt插件都是基于nodeJs来运行的,因此在你的电脑上需要安装nodeJs.安装nodeJs非常简单,点击访问nodeJs官网https://nodejs.org,然后nodeJ ...

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

    之前,我介绍了学习安装并配置前端自动化工具Gulp,觉得gulp确实比grunt的配置简单很多,于是我决定再深入学习一下gulp,就去网上查了资料,发现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. 【gulp】前端自动化工具---gulp的使用(一)------【巷子】

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

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

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

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

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

随机推荐

  1. Can I Win

    In the "100 game," two players take turns adding, to a running total, any integer from 1.. ...

  2. MySQL 专用备份软件参考

    1.MySQL Backup Tool   免费(需要安装 .NET 3.5)  https://sourceforge.net/projects/mysqlbutool/?source=typ_re ...

  3. 某互联网后台自动化组合测试框架RF+Sikuli+Python脚本

    某互联网后台自动化组合测试框架RF+Sikuli+Python脚本 http://www.jianshu.com/p/b3e204c8651a 字数949 阅读323 评论1 喜欢0 一.**Robo ...

  4. 使用 bash 创建定时任务

    假设要增加每分钟执行一次的检测任务 (crontab -l; echo "* * * * * python check.py") | crontab 在 centos 6 上, 注 ...

  5. Quartz定时任务简单实例

    文章纲要: 初步搭建一个由Quartz为引擎集群的定时任务模块,功能为每隔30秒打印一条信息(Hello World!!!) 一.环境 Spring MVC Mevan Quartz 2.2.1 二. ...

  6. IE8 下 iframe 滚动条的问题

    //设置滚动条                $("iframe[name='updateFocalWork']").attr("scrolling", &qu ...

  7. SimpleXML操控XML

    复杂字符串如下: $_xml=<<<_xml <?xml version="1.0" encoding="utf-8"?> < ...

  8. zsh 命令提示符 PROMPT

    使用上zsh后,发现命令提示符显示不了当前的路径,和一般的Linux系统默认提示不一致.配置自己的提示符: 更改配置文件.zshrc,添加配置PROMPT='%m:%. $',重新打开一个窗口生效. ...

  9. FOJ 2181 快来买肉松饼

    链接:http://acm.fzu.edu.cn/problem.php?pid=2181 思路:乍一看以为是并查集,仔细想了下又找不到让函数结束的条件,所以就看了其他人的搜索大法 #include ...

  10. Docker和Docker-compose安装教程以及docker-elk,docker-storm安装教程

    此安装教程仅供我自己安装配置时查看,其他的人不可以偷看!!! 安装Docker 1. Update package information, ensure that APT works with th ...