gulp 入门使用
gulp 入门使用
使用场景
相信大家在传统的开发模式下 都是 html + css + js 然后静态文件不经过任何处理 部署到服务器,这样会有很多漏洞例如:
1.在网站上查看F12 就可以看到源代码(可以篡改提交参数)
2.代码高级语法不经过babel转换,导致低版本浏览器无法正常解析
3.代码不压缩导致文件过大
等等等等。。。。
复制代码
webpack 和 gulp 区别
gulp:强调的是前端开发的流程,通过配置一系列的task,定义task处理的事物(例如文件压缩合并、雪碧图、启动server、 版本控制等),然后定义执行顺序,来让gulp执行task,从而构建前端项目的流程
webpack:是一个前端模块化方案,侧重模块打包,把开发中的所有资源(图片、js文件、css文件等)都看成模块,通过loader(加载器)和plugins(插件)对资源进行处理,打包成符合生产环境部署的前端资源。相同:可以文件合并与压缩(css)不同点:虽然都是前端自动化构建工具,但看他们的定位就知道不是对等的。gulp严格上讲,模块化不是他强调的东西,他旨在规范前端开发流程。webpack更是明显强调模块化开发,而那些文件压缩合并、预处理等功能,不过是他附带的功能。
安装
- 全局安装 gulp:
$ npm install --global gulp
复制代码
- 作为项目的开发依赖(devDependencies)安装:
$ npm install --save-dev gulp
复制代码
- 在项目根目录下创建一个名为 gulpfile.js 的文件:
gulp.task('default', function() {
// 将你的默认的任务代码放在这
});
复制代码
- 运行 gulp: $ gulp
文件Demo目录结构
├── css
│ ├── index.css
│ ├── lottery.css
│ ├── perfectInformation.css
│ ├── personal.css
│ ├── reset.css
│ └── vote.css
├── favicon.ico
├── gulpfile.js
├── imgs
│ ├── 0.jpeg
│ ├── bg1.png
│ ├── bg2.png
│ ├── default.png
│ ├── down.png
│ ├── editInfo.png
│ ├── head_bg.png
│ ├── homeIndex.png
│ ├── index_bg.jpg
│ ├── lottery
│ │ ├── aoji.gif
│ │ ├── bg-lottery.png
│ │ ├── ly-plate-c.gif
│ │ ├── playbtn-aoji.png
│ │ └── playbtn.png
│ ├── perfectInformation_bg.png
│ ├── qrcode.png
│ ├── search.png
│ ├── voteIndex.png
│ └── wx-share.png
├── index.html
├── lib
│ ├── jquery-3.3.1.js
│ ├── jquery.rotate.min.js
│ ├── layer_mobile
│ │ ├── layer.js
│ │ └── need
│ │ └── layer.css
│ ├── qrcode.min.js
│ ├── rem.js
│ └── share.js
├── lottery.html
├── package-lock.json
├── package.json
├── perfectInformation.html
├── personal-share.html
├── personal.html
├── script
│ ├── index.js
│ ├── lottery.js
│ ├── perfectInformation.js
│ ├── personal-share.js
│ ├── personal.js
│ └── vote.js
└── vote.html
复制代码
.gulpfile.js编写
var gulp = require('gulp'),
htmlmin = require('gulp-htmlmin'),//压缩html插件
babel = require("gulp-babel"), // 用于ES6转化ES5
del = require('del'),//删除文件插件
cssmin = require("gulp-cssmin"),//css 压缩插件
less = require("gulp-less"),//less 转css插件
sass = require("gulp-sass"),//sass 转css插件
rename = require("gulp-rename"),//重命名插件
uglify = require("gulp-uglify");//js 压缩插件
//删除dist文件夹
gulp.task('clean', function () {
return del([
'dist'
])
})
//css压缩
gulp.task('css', function () {
return gulp.src("./css/*.css")
.pipe(cssmin())
.pipe(gulp.dest("./dist/css"));
});
//less转换 压缩
gulp.task('less', function () {
return gulp.src('./css/*.less')
.pipe(rename({
suffix: '.min'
}))
.pipe(less())
.pipe(gulp.dest("./dist/css"));
});
//图片拷贝到指定目录
gulp.task('imgs', function () {
gulp.src("./lib/**/*")
.pipe(gulp.dest("./dist/lib/"));
return gulp.src("./imgs/**/*")
.pipe(gulp.dest("./dist/imgs/"));
});
//javascript压缩
gulp.task('script', function () {
//将第三方压缩文件拷贝
gulp.src("./script/*.min.js")
.pipe(gulp.dest("./dist/script"));
gulp.src("./script/*.json")
.pipe(gulp.dest("./dist/script"));
//压缩非第三方min文件
return gulp.src("./script/!(*.min)*.js")
.pipe(babel({
presets: ['@babel/env']
}))
.pipe(uglify())
.pipe(gulp.dest("./dist/script"));
});
//html压缩
gulp.task('page', function () {
// 将你的默认的任务代码放在这
var options = {
removeComments: true, //清除HTML注释
collapseWhitespace: true, //压缩HTML
collapseBooleanAttributes: true, //省略布尔属性的值 <input checked="true"/> ==> <input checked />
removeEmptyAttributes: true, //删除所有空格作属性值 <input id="" /> ==> <input />
removeScriptTypeAttributes: true, //删除<script>的type="text/javascript"
removeStyleLinkTypeAttributes: true, //删除<style>和<link>的type="text/css"
minifyJS: true, //压缩页面JS
minifyCSS: true //压缩页面CSS
};
return gulp.src('*.html')
.pipe(htmlmin(options))
.pipe(gulp.dest('dist/'))
})
gulp.task('default', gulp.series('clean', 'css', 'script', 'imgs', 'page'), function () {
});
复制代码
执行gulp命令进行打包压缩
gulp
复制代码
打包后的代码都是经过压缩的
gulp 入门使用的更多相关文章
- Gulp入门教程(转载)
本人转载自: Gulp入门教程
- (转)前端构建工具gulp入门教程
前端构建工具gulp入门教程 老婆婆 1.8k 2013年12月30日 发布 推荐 10 推荐 收藏 83 收藏,20k 浏览 本文假设你之前没有用过任何任务脚本(task runner)和命令行工具 ...
- 《Gulp 入门指南》 : 使用 gulp 压缩 JS
<Gulp 入门指南> : 使用 gulp 压缩 JS 请务必理解如下章节后阅读此章节: 安装 Node 和 gulp 访问论坛获取帮助 压缩 js 代码可降低 js 文件大小,提高页面打 ...
- Gulp入门与解惑
Gulp简介 Gulp.js 是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务.Gulp.js是基于 Node.js构建的,利用Node.js流的威力,你可以快速构建项目. 安装 ...
- 【转】Gulp入门基础教程
Gulp入门基础教程 原文在此 前言最近流行前端构建工具,苦于之前使用Grunt,代码很难阅读,现在出了Gulp, 真是摆脱了痛苦.发现了一篇很好的Gulp英文教程,整理翻译给大家看看. 为什么使用G ...
- gulp入门与一些基本设置
这里是gulp入门的一些操作,实现了编译sass文件.压缩.合并.添加版本号等基本功能. 友情提示,如果npm出现无法下载可以安装 cnpm.在安装完Nodejs 后 npm install cnpm ...
- gulp入门演练
一直想学习下gulp看了蛮多资料,然后总是感觉是是而非,突然开窍了,把自己学会的过程给大家分享下,入门超级简单的 gulp安装 安装gulp 如果参数-g 表示全局安装 $ npm install g ...
- 前端小白的gulp入门
gulp新手入门 全局安装 cnpm install -g gulp 本地安装cnpm install gulp -D 如果项目没有package.json,记得npm init 安装插件cnpm i ...
- gulp入门学习教程(入门学习记录)
前言 最近在通过教学视频学习angularjs,其中有gulp的教学部分,对其的介绍为可以对文件进行合并,压缩,格式化,监听,测试,检查等操作时,看到前三种功能我的心理思想是,网上有很多在线压缩,在线 ...
随机推荐
- c#如何声明数据结构类型为null?
可以通过如下两种方式声明可为空的类型:System.Nullable<T> variable;T?variable:eg:int值是-2,147,483,648 到 2,147,483,6 ...
- Spring MVC的文件上传和下载
简介: Spring MVC为文件上传提供了直接的支持,这种支持使用即插即用的MultipartResolver实现的.Spring MVC 使用Apache Commons FileUpload技术 ...
- Java运行时数据区概述
Java 虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途,如图所示: 程序计数器 程序计数器是一块比较小的内存空间,可以看作是当前线程所执行的字节 ...
- 《全栈营销之如何制作个人博客》之二:php环境安装及个人博客后台搭建 让你的博客跑起来
上一节我们讲了个人博客用什么开发语言,用什么CMS系统,从这一节我们就开始真正的干货,这一节我们讨论一下PHP环境的安装,及个人博客后台的搭建,让你的博客在正常的PHP环境中运行起来,你就可以进行后台 ...
- HTML页面转换为Sharepoint母版页(实战)
分享人:广州华软 极简 一. 前言 SharePoint有母版页.布局页.母版页存放着如头部(顶部菜单.导航),底部等比较通用部分,通常网站只需一套即可:而布局页,则存放着主要内容部分,根据页面需要, ...
- Android 使用TextView实现跑马灯效果
前言 我们在开发中经常会遇到一个小问题.比如下面一个小例子: 这个文字太长,单行中导致无法全部显示出来,这就是今天要实现的功能. 当然,百度中也有很多这种解决方案. 其中有一种,例如: <Tex ...
- Eclipse导出包含第三方Jar的工程
基于第三方开源的Jar包封装了一个工具类,在导出成Jar包后,引用新生成的Jar包,却报找不到类的错误.看了一下生成的Jar包,发现根本没有包含第三方Jar包的相关class.这是导出第三方Jar包时 ...
- 2019年3月29日至30日深圳共创力《成功的产品经理DNA》在深圳公开课成功举办
2019年3月29至30日,在深圳南山区中南海滨大酒店10楼行政厅,由深圳市共创力企业管理咨询有限公司举办的<成功的产品经理DNA>公开课成功举办,此次公开课由深圳市共创力咨询资深讲师冯老 ...
- 各种raid对比
级别 最少单元 特征 冗余 性能 空间利用率 综合评价 RAID0 1 分片分散存入 否 读写2倍 100% 分散存储,任何一块坏掉数据则不完整 RAID1 2 相同数据存入2个磁盘 是 写不变,读快 ...
- Nginx作为HTTP服务器--Nginx配置图片服务器
首先安装nginx安装环境 nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境. --> gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖 ...