点击上方 毛利学python,选择置顶或星标
第一时间送达Python 技术干货!

gulp

gulp是基于流的前端构件化工具。gulp是自动化项目的构建利器;不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成。同时使用非常简单,学习成本低。这个压缩工具也是前端必学的的工具。

环境搭建

  • node
    因为npm跟随node的包安装管理工具。具体下载直接百度nodejs中文网,根据自身的环境(windows linux mac)下载安装包(msi)。直接进行安装。

  • npm install -g gulp
    安装成功后就可以在命令行输入gulp相关的命令了

安装成功后,输入gulp -v 查看版本

在项目中安装 npm install --save-dev gulp,安装成功后就可以开始写配置文件了。

环境开发

  • vscode
  • nodejs
  • gulp

gulp入门

npm init 项目初始化 ,此时根目录会出现package.json

npm install gulp --save-dev 在本地项目局部安装gulp

创建gulpfile.js文件

//  以下代码会执行在node环境下
var gulp = require( "gulp" );//  创建一个gulp的任务
gulp.task( "default",function(done){console.log( "hello gulp" );done();
} );

在命令行执行gulp default

压缩css

npm install gulp-cssnano --save -dev 在本地项目安装gulp-cssnano

新建一个css文件夹,在新建index.css

*{margin: 0;padding: 0;
}p{color: red
}

gulpfile.js代码如下

var gulp = require('gulp');
// 需要先安装gulp-cssnano
var cssnano = require('gulp-cssnano');
// 定义一个处理css文件改动的任务gulp.task('css',function(){gulp.src('./css/*.css').pipe(cssnano()) .pipe(gulp.dest("./dist/css/"))
});

新建dist文件夹来存放生成的css任务

执行 gulp css


在dist文件夹的css文件夹生成了index.css
*{margin:0;padding:0}p{color:red}
gulp 修改压缩的文件名

npm install gulp-rename --save-dev 在本地项目安装

gulpfile.js代码修改如下

var gulp = require('gulp');
// 需要先安装gulp-cssnano
var cssnano = require('gulp-cssnano');
var rename = require('gulp-rename')
// 定义一个处理css文件改动的任务
gulp.task('css',function(){// 处理css文件的目录return gulp.src('./css/*.css').pipe(cssnano()) // 将index.css生成index.min.css.pipe(rename({"suffix":".min"})).pipe(gulp.dest("./dist/css/"))
});

执行 gulp css,这样将index.css命名为index.min.css


js压缩

npm install gulp-uglify --save-dev 安装js压缩插件

同样的道理新建js文件夹新建index.js

代码是生成斐波那契数组

function getFibonacci(n) {  var fibarr = [];var i = 0;while(i<n) {if(i<=1) {fibarr.push(i);}else{fibarr.push(fibarr[i-1] + fibarr[i-2])}i++;}return fibarr;}

gulpfile.js代码修改如下

var gulp = require('gulp');
var rename = require('gulp-rename');
var uglify = require('gulp-uglify')// 对js请求进行压缩和混淆
// 定义任务
gulp.task('myscript', function() {// 1.匹配要处理的文件return gulp.src('src/js/*.js')// 2.将js代码压缩混淆.pipe(uglify()).pipe(rename({"suffix":".min"})).pipe(gulp.dest('./dist/js'))
})

执行 gulp myscript

index.min.js代码就会压缩

function getFibonacci(n){for(var r=[],u=0;u<n;)u<=1?r.push(u):r.push(r[u-1]+r[u-2]),u++;return r}

html 压缩

npm install gulp-htmlmin --save-dev

新建html文件夹在新建index.html

gulpfile.js代码修改如下

var gulp = require('gulp');
var rename = require('gulp-rename');
// 对html进行压缩的包
var htmlmin = require('gulp-htmlmin')
// 对html进行压缩
// 定义任务
gulp.task('myhtml', function(){// 1.匹配到要处理的html文件return gulp.src('./html/*.html')// 2.对html进行压缩!.pipe(htmlmin({collapseWhitespace:true // 去除空白符}))// 3.输出.pipe(rename({"suffix":".min"})).pipe(gulp.dest('dist/html'))
})

执行 gulp myhtml

index.html就会被压缩

使用gulp 压缩代码能使项目运行更加的流畅。

前端开发使用工具 gulp相关推荐

  1. Web前端开发必备工具推荐

    http://gaohaixian.blog.163.com/blog/static/12326010520114265223489/不管你做前端开发还是网页重构,前端工具都起着非常重要的作用,这里向 ...

  2. web前端开发小工具集合

    收集的一些轻量级非常实用的前端开发小工具,以后还会不定期进行更新,现将目前收集的信息列表如下:   CSS 3相关 1.CSS3样式生成器:http://www.css88.com/tool/css3 ...

  3. 前端开发必备工具-网页调试工具

    前端开发必备工具-网页调试工具 在前端开发中我们经常会要调试页面,主要html.css调试和js调试,这里整理一些工具: 一.firefox网页调试插件 1.firefox插件Firebug 主要用于 ...

  4. java前端编程用什么软件_java前端开发的工具

    1 java前端开发的工具 在实际开发中,Java也有多个应用方向,手机开发.桌面开发.企业级应用开发.嵌入式开发等.所以学好Java,无疑多了一把通往成功大门的钥匙.下面小编给大家说说java前端开 ...

  5. Brackets前端开发IDE工具

    Brackets是一个开源的前端开发IDE工具,网页设计师和前端开发人员必备的前端开发IDE工具. 它能够使你在开发WEB网站实时预览你的网页,目前版本只适用于Chrome浏览器可以实时预览效果 支持 ...

  6. 常用的前端自动化构建工具gulp/grunt/fis --简介

    常用的前端自动化构建工具 之前我们自动化构建将入门级别使用的 NPM Scripts自动化构建工具对于相对复杂的项目构建会比较吃力,那么我们会了解 Gulp Grunt fIS 用法基本相同:都是通过 ...

  7. 前端开发的工具化与工程化

    概述 近年来,随着浏览器性能的提升与移动互联网浪潮的汹涌而来,Web前端开发进入了高歌猛进,日新月异的时代.这是最好的时代,我们永远在前行,这也是最坏的时代,无数的前端开发框架.技术体系争妍斗艳,让开 ...

  8. 在Mac下的前端开发必备工具

    mac 下前端开发体验实在太赞,因此我以后都转到mac下开发了.Mac系统UI精致美观,动效优雅迷人恰到好处,加上一块好点儿的屏幕,写代码也成了一件让人赏心悦目的事情.同时没有右下角弹窗的打扰,没有流 ...

  9. 6 个前端开发必备工具,提高你的生产力

    网络为我们提供了多种多样的前端工具,我挑选了6个实用的前端工具,能帮助大家提高工作效率. 1.EnjoyCSS 老实说,我做过很多的前端开发,但一直不擅长CSS. 这个简单易上手的工具在很多时候给了我 ...

最新文章

  1. python默认的一个代码缩进是几个空格_python缩进长度是否统一
  2. python3 列表转字节_Python 3.9!10大新特性值得关注
  3. 传值类型_what?你竟然不知道C#中的方法及参数的类型解析!那还不快来瞅瞅
  4. Request mapping url and handler registration
  5. 使用 dotnet-monitor 分析.NET 应用程序
  6. Android实现3D旋转效果
  7. 编码规范一 结构与要求
  8. vue 时间插件_Vue插件丨vxe-table初体验
  9. CSC宣布成立CSC Security Center
  10. bp神经网络反向传播推导,bp神经网络的传递函数
  11. 【JSP课程设计(含源码)】宾馆客房管理系统(2021-7-2最新版)
  12. html5这什么意思,html5是什么意思?html5和html的区别介绍
  13. java计算机毕业设计游泳馆信息管理系统源程序+mysql+系统+lw文档+远程调试
  14. 打喷嚏的龙(dargon)
  15. 海豚调度(DolphinSchedulerDolphinScheduler)2.0的下载及安装(单机版)
  16. linux nuc 吗 支持_当NUC遇上本地衍生版Linux
  17. 2018 ACM ICPC Arabella Collegiate Programming Contest A
  18. 安卓苹果手机抓取京东cookie
  19. Vdbench:解决运行时出现的常见问题记录1
  20. 音频格式(一)PCM和WAV

热门文章

  1. 用来处理python字典的方法_python字典的常用方法总结
  2. jlist放jbutton 按钮事件失效_JS DOM操作 函数 事件 阻止事件冒泡
  3. php get 返回源码,php源码 fsockopen获取网页内容实例详解
  4. 利用计算机进行有理数的运算教学反思,《有理数加减乘除混合运算》教学反思...
  5. java.library.path hadoop_关于java:Hadoop“无法为您的平台加载本机Hadoop库”警告
  6. 一阶微分方程的物理意义_MIT—微分方程笔记24 一阶常微分方程组
  7. Android 点击跳转到蓝牙设置界面
  8. 可信计算 沈昌祥_沈昌祥:用可信计算筑牢网络安全
  9. Java的OOP三大特征之一——多态
  10. 【BZOJ-2325】道馆之战 树链剖分 + 线段树