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 相关文章推荐
自动更新作用
Oct 08 Javascript
jQuery Trim去除字符串首尾空字符的实现方法说明
Feb 11 Javascript
jQuery实现dialog设置focus焦点的方法
Jun 10 Javascript
浏览器复制插件zeroclipboard使用指南
Mar 26 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
Aug 04 Javascript
原生js的RSA和AES加密解密算法
Oct 08 Javascript
ng-events类似ionic中Events的angular全局事件
Sep 05 Javascript
js拖动滑块和点击水波纹效果实例代码
Oct 16 Javascript
angular6 填坑之sdk的方法
Dec 27 Javascript
抖音上用记事本编写爱心小程序教程
Apr 17 Javascript
深入解析vue 源码目录及构建过程分析
Apr 24 Javascript
vue调用本地摄像头实现拍照功能
Aug 14 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中实现中文字符进制转换原理分析
2011/12/06 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
php生成微信红包数组的方法
2019/09/05 PHP
php 策略模式原理与应用深入理解
2019/09/25 PHP
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
jQuery学习笔记之 Ajax操作篇(二) - 数据传递
2014/06/23 Javascript
JavaScript使用循环和分割来替换和删除元素实例
2014/10/13 Javascript
jquery处理json对象
2014/11/03 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
2015/08/11 Javascript
论JavaScript模块化编程
2016/03/07 Javascript
jquery把int类型转换成字符串类型的方法
2016/10/07 Javascript
javascript中Date对象的使用总结
2016/11/21 Javascript
整理关于Bootstrap列表组的慕课笔记
2017/03/29 Javascript
原生JS实现N级菜单的代码
2017/05/21 Javascript
Avalonjs双向数据绑定与监听的实例代码
2017/06/23 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
JSON字符串操作移除空串更改key/value的介绍
2019/01/05 Javascript
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
python通过线程实现定时器timer的方法
2015/03/16 Python
用python处理图片之打开\显示\保存图像的方法
2018/05/04 Python
对python中for、if、while的区别与比较方法
2018/06/25 Python
利用python提取wav文件的mfcc方法
2019/01/09 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
2020/04/08 Python
如何基于windows实现python定时爬虫
2020/05/01 Python
解决python 执行shell命令无法获取返回值的问题
2020/12/05 Python
canvas 基础之图像处理的使用
2020/04/10 HTML / CSS
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
利物浦足球俱乐部官方商店(美国):Liverpool FC US
2019/10/09 全球购物
Linux如何压缩可执行文件
2013/10/21 面试题
应届生求职推荐信
2013/10/28 职场文书
工程测量与监理专业应届生求职信
2013/11/27 职场文书
大一军训感言
2014/01/09 职场文书
2014年国庆节演讲稿
2014/09/02 职场文书
2016暑期政治学习心得体会
2016/01/23 职场文书
APP界面设计技巧和注意事项
2022/04/29 杂记
利用Python实现翻译HTML中的文本字符串
2022/06/21 Python