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 相关文章推荐
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
Dec 28 Javascript
jquery判断RadioButtonList和RadioButton中是否有选中项示例
Sep 29 Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
May 14 Javascript
JavaScript中的变量作用域介绍
Dec 31 Javascript
AngularJS基础 ng-class-odd 指令示例
Aug 01 Javascript
浅析ES6的八进制与二进制整数字面量
Aug 30 Javascript
AngularJs用户登录问题处理(交互及验证、阻止FQ处理)
Oct 26 Javascript
weebox弹出窗口不居中显示的解决方法
Nov 27 Javascript
使用webpack-dev-server处理跨域请求的方法
Apr 18 Javascript
JS使用cookie保存用户登录信息操作示例
May 30 Javascript
vue中@change兼容问题详解
Oct 25 Javascript
vue 需求 data中的数据之间的调用操作
Aug 05 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时间戳转换的示例
2014/03/31 PHP
CI(CodeIgniter)框架介绍
2014/06/09 PHP
Yii使用find findAll查找出指定字段的实现方法
2014/09/05 PHP
php简单实现快速排序的方法
2015/04/04 PHP
php封装的单文件(图片)上传类完整实例
2016/10/18 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
动态载入/删除/更新外部 JavaScript/Css 文件的代码
2010/07/03 Javascript
jQuery使用一个按钮控制图片的伸缩实现思路
2013/04/19 Javascript
jquery批量设置属性readonly和disabled的方法
2014/01/24 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
JS克隆,属性,数组,对象,函数实例分析
2016/11/26 Javascript
微信小程序商城项目之侧栏分类效果(1)
2017/04/17 Javascript
用js实现before和after伪类的样式修改的示例代码
2017/09/07 Javascript
使用watch监听路由变化和watch监听对象的实例
2018/02/24 Javascript
Vue.js中的computed工作原理
2018/03/22 Javascript
解决Vue打包上线之后部分CSS不生效的问题
2019/11/12 Javascript
Node.js控制台彩色输出的方法与原理实例详解
2019/12/01 Javascript
浅谈VUE中演示v-for为什么要加key
2020/01/16 Javascript
js中forEach,for in,for of循环的用法示例小结
2020/03/14 Javascript
[45:34]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.18
2020/12/19 DOTA
Python中的localtime()方法使用详解
2015/05/22 Python
Python调用微信公众平台接口操作示例
2017/07/08 Python
PYTHON基础-时间日期处理小结
2018/05/05 Python
python3实现zabbix告警推送钉钉的示例
2019/02/20 Python
python实现栅栏加解密 支持密钥加密
2019/03/20 Python
Python爬取腾讯视频评论的思路详解
2019/12/19 Python
Tensorflow获取张量Tensor的具体维数实例
2020/01/19 Python
pytorch实现CNN卷积神经网络
2020/02/19 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
2020/03/14 Python
Pandas之read_csv()读取文件跳过报错行的解决
2020/04/21 Python
CSS3制作圆形滚动进度条动画的示例
2020/11/05 HTML / CSS
Loreto Gallo英国:欧洲领先的在线药房
2021/01/21 全球购物
渗透攻击的测试步骤
2014/06/07 面试题
关于期中考试的反思
2014/02/02 职场文书
2015个人半年总结范文
2015/03/09 职场文书
Apache Linkis 中间件架构及快速安装步骤
2022/03/16 Servers