JS中使用gulp实现压缩文件及浏览器热加载功能


Posted in Javascript onJuly 12, 2017

gulp类似于grunt,都是基于Node.js的前端构建工具。不过gulp压缩效率更高。

一.安装gulp

首先,你要安装过nodejs,如果没有安装过的同学请自行下载。  先再命令行里输入   npm install gulp -g   下载gulp

二.创建gulp项目

创建一个你需要项目文件夹,然后在根目录输入  npm init  (npm init命令会为你创建一个package.json文件,这个文件保存着这个项目相关信息。比如你用到的各种依赖)

三.使用npm install 安装各种依赖

例:

npm install browser-sync--save-dev

JS中使用gulp实现压缩文件及浏览器热加载功能

这里总共用到了这些依赖,请自行下载   具体各自都有什么用 后面会具体介绍。

四.编写gulpfile.js

首先,声明这些依赖

JS中使用gulp实现压缩文件及浏览器热加载功能

然后我们就要开始最重要的工作了,配置这些依赖

1.配置压缩css

 JS中使用gulp实现压缩文件及浏览器热加载功能

2.配置压缩js

JS中使用gulp实现压缩文件及浏览器热加载功能

3.配置压缩img

JS中使用gulp实现压缩文件及浏览器热加载功能

4.配置html,这里没有进行压缩,感觉没有压缩的必要 (纯属见仁见智)

JS中使用gulp实现压缩文件及浏览器热加载功能

5.配置清楚文件,因为每次打包都会生成新文件  所以在这之前要把之前的文件给清除掉

JS中使用gulp实现压缩文件及浏览器热加载功能

6.配置浏览器热加载

JS中使用gulp实现压缩文件及浏览器热加载功能

7.配置打包  

JS中使用gulp实现压缩文件及浏览器热加载功能

这里的runSequence是指能同时执行多个命令

8.设置gulp启动时执行哪些配置

JS中使用gulp实现压缩文件及浏览器热加载功能

最后放上全部代码 供大家参考

var gulp = require('gulp');
var sass = require('gulp-sass');
var browserSync = require('browser-sync');
var uglify = require('gulp-uglify');
var imagemin = require('gulp-imagemin');
var minifyCSS = require('gulp-minify-css');
var cache = require('gulp-cache');
var del = require('del');
var runSequence = require('run-sequence');
var minifyHtml= require("gulp-minify-html");
gulp.task('sass', function(){  //打包sass
 return gulp.src('app/scss/**/*.scss')
  .pipe(sass()) // Converts Sass to CSS with gulp-sass
  .pipe(gulp.dest('app/css'))
  .pipe(browserSync.reload({
   stream: true
  }))
});
gulp.task('js',function() {
  gulp.src('app/**/*.js')
  .pipe(uglify())//压缩
  .pipe(gulp.dest('dist'));
});
gulp.task('css', function () {
  gulp.src('app/css/*.css')
  .pipe(minifyCSS())
  .pipe(gulp.dest('dist/css'))
})
gulp.task('minify-html',function() {
   gulp.src('app/**/*.html')//要压缩的html文件
   .pipe(gulp.dest('dist'));
});
gulp.task('images', function(){
 return gulp.src('app/images/**/*.+(png|jpg|jpeg|gif|svg)')
 // Caching images that ran through imagemin
 .pipe(cache(imagemin({
   interlaced: true
  })))
 .pipe(gulp.dest('dist/images'))
});
gulp.task('clean', function(callback) {
 del('dist');
 return cache.clearAll(callback);
});
gulp.task('watch',['browserSync', 'sass'],function(){  //我们可以在watch任务之前告知Gulp,先把browserSync和Sass任务执行了再说。
 gulp.watch('app/scss/**/*.scss', ['sass']);
 gulp.watch('app/*.html', browserSync.reload);
 gulp.watch('app/js/**/*.js', browserSync.reload);
 // Other watchers
});
gulp.task('browserSync', function() { //浏览器热加载
 browserSync({
  server: {
   baseDir: 'app'
  },
 })
});
gulp.task('build', function (callback) {
 runSequence('clean',['minify-html','js','images','css'],callback)
});
gulp.task('default', function (callback) {
 runSequence(['sass','browserSync', 'watch'],
  callback
 )
});

以上所述是小编给大家介绍的JS中使用gulp实现压缩文件及浏览器热加载功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js 未结束的字符串常量错误解决方法
Jun 13 Javascript
javascript真的不难-回顾一下基础知识
Jan 15 Javascript
浅析document.createDocumentFragment()与js效率
Jul 08 Javascript
使用GruntJS构建Web程序之安装篇
Jun 04 Javascript
原创jQuery弹出层插件分享
Apr 02 Javascript
微信WeixinJSBridge API使用实例
May 25 Javascript
分享我的jquery实现下拉菜单心的
Nov 29 Javascript
Bootstrap路径导航与分页学习使用
Feb 08 Javascript
Node.js 中exports 和 module.exports 的区别
Mar 14 Javascript
vue页面使用阿里oss上传功能的实例(一)
Aug 09 Javascript
JavaScript使用Ajax上传文件的示例代码
Aug 10 Javascript
vue微信分享出来的链接点开是首页问题的解决方法
Nov 28 Javascript
Vue中的数据监听和数据交互案例解析
Jul 12 #Javascript
js 监控iframe URL的变化实例代码
Jul 12 #Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
Jul 12 #jQuery
浅谈原生JS中的延迟脚本和异步脚本
Jul 12 #Javascript
基于zepto.js实现手机相册功能
Jul 11 #Javascript
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
Jul 11 #Javascript
详解Webpack DLL用法以及功能
Jul 11 #Javascript
You might like
PHP 利用Mail_MimeDecode类提取邮件信息示例
2014/01/26 PHP
php语言的7种基本的排序方法
2020/12/28 PHP
PHP生成随机码的思路与方法实例探索
2019/04/11 PHP
Yii框架日志操作图文与实例详解
2019/09/09 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
基于Web标准的UI组件 — 树状菜单(2)
2006/09/18 Javascript
jquery 问答知识整理
2010/02/11 Javascript
JS 实现导航栏悬停效果(续)
2013/09/24 Javascript
javascript实现倒计时N秒后网页自动跳转代码
2014/12/11 Javascript
js+jquery实现图片裁剪功能
2015/01/02 Javascript
jQuery检测返回值的数据类型
2015/07/13 Javascript
详解JavaScript中Hash Map映射结构的实现
2016/05/21 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
JQuery EasyUI的一些常用组件
2017/07/12 jQuery
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
JavaScript实现数值自动增加动画
2017/12/28 Javascript
webpack4简单入门实例
2018/09/06 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
2020/06/01 Javascript
如何在vue中使用kindeditor富文本编辑器
2020/12/19 Vue.js
python中私有函数调用方法解密
2016/04/29 Python
利用Python生成文件md5校验值函数的方法
2017/01/10 Python
Python实现单词翻译功能
2017/06/06 Python
python模拟表单提交登录图书馆
2018/04/27 Python
Python多进程fork()函数详解
2019/02/22 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
2019/06/18 Python
Pandas分组与排序的实现
2019/07/23 Python
Python PO设计模式的具体使用
2019/08/16 Python
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
科级干部群众路线教育实践活动对照检查材料思想汇报
2014/09/20 职场文书
大一新生检讨书
2014/10/29 职场文书
2014年大堂经理工作总结
2014/11/21 职场文书
教师节联欢会主持词
2015/07/04 职场文书
授权协议书范本(3篇)
2019/10/15 职场文书
Nginx反向代理及负载均衡如何实现(基于linux)
2021/03/31 Servers
Windows Server 2008配置防火墙策略详解
2022/06/28 Servers