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 相关文章推荐
Stop SQL Server
Jun 21 Javascript
Extjs学习笔记之七 布局
Jan 08 Javascript
Jquery从头学起第四讲 jquery入门教程
Aug 01 Javascript
jQuery旋转插件—rotate支持(ie/Firefox/SafariOpera/Chrome)
Jan 16 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器(优化篇)
Jun 28 Javascript
Javascript堆排序算法详解
Dec 03 Javascript
完美JQuery图片切换效果的简单实现
Jul 21 Javascript
微信小程序 实现动态显示和隐藏某个控件
Apr 27 Javascript
javascript 中iframe高度自适应(同域)实例详解
May 16 Javascript
js技巧之十几行的代码实现vue.watch代码
Jun 09 Javascript
node.js命令行教程图文详解
May 27 Javascript
JavaScript如何把两个数组对象合并过程解析
Oct 10 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
MySQL修改密码方法总结
2008/03/25 PHP
浅谈Javascript面向对象编程
2011/11/15 Javascript
Javascript页面添加到收藏夹的简单方法
2013/08/07 Javascript
js获取php变量的实现代码
2013/08/10 Javascript
JavaScript对象之深度克隆介绍
2014/12/08 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
2015/04/27 Javascript
浅谈javascript的call()、apply()、bind()的用法
2016/02/21 Javascript
jquery层级选择器(匹配父元素下的子元素实现代码)
2016/09/05 Javascript
easyui tree带checkbox实现单选的简单实例
2016/11/07 Javascript
微信小程序 详解页面跳转与返回并回传数据
2017/02/13 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(1)
2017/02/20 Javascript
如何使用Bootstrap创建表单
2017/03/29 Javascript
JavaScript中闭包的详解
2017/04/01 Javascript
微信小程序 wx:for的使用实例详解
2017/04/27 Javascript
JS中Safari浏览器中的Date
2017/07/17 Javascript
react实现点击选中的li高亮的示例代码
2018/05/24 Javascript
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
Python是编译运行的验证方法
2015/01/30 Python
Python3遍历目录树实现方法
2015/05/22 Python
Python实现获取前100组勾股数的方法示例
2018/05/04 Python
Python单元测试实例详解
2018/05/25 Python
python存储16bit和32bit图像的实例
2018/12/05 Python
Python 进程之间共享数据(全局变量)的方法
2019/07/16 Python
Python命令行参数argv和argparse该如何使用
2021/02/08 Python
Python使用tkinter实现小时钟效果
2021/02/22 Python
高清屏中使用Canvas绘图出现模糊的问题及解决方法
2019/06/03 HTML / CSS
印度最大的网上花店:Ferns N Petals(鲜花、礼品和蛋糕)
2017/10/16 全球购物
金融专业应届生求职信
2013/11/02 职场文书
"9.18"国耻日演讲稿范文
2014/09/14 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
晚会开幕词
2015/01/28 职场文书
我们的节日端午节活动总结
2015/02/11 职场文书
《老人与海鸥》教学反思
2016/02/16 职场文书
优秀范文:《但愿人长久》教学反思3篇
2019/10/24 职场文书
分布式架构Redis中有哪些数据结构及底层实现原理
2022/03/13 Redis
pandas进行数据输入和输出的方法详解
2022/03/23 Python