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中的escape及unescape函数的php实现代码
Sep 04 Javascript
兼容IE和Firefox的javascript获取iframe文档内容的函数
Aug 15 Javascript
js URL参数的拼接方法比较
Feb 15 Javascript
javascript轻量级模板引擎juicer使用指南
Jun 22 Javascript
javascript判断css3动画结束 css3动画结束的回调函数
Mar 10 Javascript
jQuery插件bxSlider实现响应式焦点图
Apr 12 Javascript
jQuery实现的多屏图像图层切换效果实例
May 07 Javascript
jQuery实现切换页面过渡动画效果
Oct 29 Javascript
jQuery简单获取键盘事件的方法
Jan 22 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
Apr 19 Javascript
原生js中ajax访问的实例详解
Sep 19 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
Sep 06 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
require(),include(),require_once()和include_once()区别
2008/03/27 PHP
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
深入理解PHP类的自动载入机制
2016/09/16 PHP
laravel创建类似ThinPHP中functions.php的全局函数
2016/11/26 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
非常棒的10款jQuery 幻灯片插件
2011/06/14 Javascript
jQuery 源码分析笔记(5) jQuery.support
2011/06/19 Javascript
js数组操作学习总结
2013/11/04 Javascript
ajax+jQuery实现级联显示地址的方法
2015/05/06 Javascript
jQuery简单获取键盘事件的方法
2016/01/22 Javascript
一览画面点击复选框后获取多个id值的方法
2016/05/30 Javascript
AngularJS实现根据变量改变动态加载模板的方法
2016/11/04 Javascript
jquery 判断div show的状态实例
2016/12/03 Javascript
正则中的回溯定义与用法分析【JS与java实现】
2016/12/27 Javascript
vue组件间通信解析
2017/03/01 Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
2017/06/06 Javascript
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
JS打印彩色菱形的实例代码
2018/08/15 Javascript
webpack4 处理CSS的方法示例
2018/09/03 Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
2018/09/12 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
2018/09/27 Javascript
[03:09]显微镜下的DOTA2第一期——带你走进华丽的DOTA2世界
2014/06/20 DOTA
[46:02]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第二局
2016/02/28 DOTA
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
Python实现冒泡,插入,选择排序简单实例
2014/08/18 Python
python网络编程实例简析
2014/09/26 Python
Python面向对象封装操作案例详解 II
2020/01/02 Python
美国最受欢迎的童装品牌之一:The Children’s Place
2016/07/23 全球购物
zooplus波兰:在线宠物店
2019/07/21 全球购物
美国伴娘礼服商店:Evening Collective
2019/10/07 全球购物
高级护理实习生自荐信
2013/09/28 职场文书
2014学雷锋活动心得体会
2014/03/10 职场文书
学校学习型党组织建设心得体会
2019/06/21 职场文书
2019公司借款合同范本2篇!
2019/07/24 职场文书
用Python爬取英雄联盟的皮肤详细示例
2021/12/06 Python
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python