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 相关文章推荐
jQuery实现密保互斥问题解决方案
Aug 16 Javascript
Jjcarousellite 实现图片列表滚动的简单实例
Nov 29 Javascript
通过JS来判断页面控件是否获取焦点
Jan 03 Javascript
jQuery 获取、设置HTML或TEXT内容的两种方法
May 23 Javascript
Javascript中作用域的详细介绍
Oct 06 Javascript
javascript动画之磁性吸附效果篇
Dec 09 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
Jan 05 Javascript
通过button将form表单的数据提交到action层的实例
Sep 08 Javascript
初探js和简单隐藏效果的实例
Nov 23 Javascript
Seajs源码详解分析
Apr 02 Javascript
Vuejs中的watch实例详解(监听者)
Jan 05 Javascript
Websocket 向指定用户发消息的方法
Jan 09 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 iconv函数的使用详解
2013/06/09 PHP
ThinkPHP静态缓存简单配置和使用方法详解
2016/03/23 PHP
php实时倒计时功能实现方法详解
2017/02/27 PHP
PHP实现的大文件切割与合并功能示例
2018/04/10 PHP
Firefox div高度自适应
2009/04/28 Javascript
用JS将搜索的关键字高亮显示实现代码
2013/11/08 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
2015/04/17 Javascript
JavaScript实现MIPS乘法模拟的方法
2015/04/17 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
2015/10/01 Javascript
js控制TR的显示隐藏
2016/03/04 Javascript
AngularJS服务service用法总结
2016/12/13 Javascript
vue.js实现数据动态响应 Vue.set的简单应用
2017/06/15 Javascript
Bootstrap Table从零开始
2017/06/30 Javascript
JavaScript中的return布尔值的用法和原理解析
2017/08/14 Javascript
node+koa实现数据mock接口的方法
2017/09/20 Javascript
bootstrap时间控件daterangepicker使用方法及各种小bug修复
2017/10/25 Javascript
Angular 项目实现国际化的方法
2018/01/08 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
2018/03/06 Javascript
快速搭建vue2.0+boostrap项目的方法
2018/04/09 Javascript
如何使用less实现随机下雪动画详解
2019/01/02 Javascript
js实现自定义右键菜单
2020/05/18 Javascript
Python编程之string相关操作实例详解
2017/07/22 Python
python3将视频流保存为本地视频文件
2018/06/20 Python
对python的unittest架构公共参数token提取方法详解
2018/12/17 Python
django admin组件使用方法详解
2019/07/19 Python
Python Selenium参数配置方法解析
2020/01/19 Python
Python semaphore evevt生产者消费者模型原理解析
2020/03/18 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
2020/05/19 Python
python装饰器代码深入讲解
2021/03/01 Python
写给女朋友的检讨书
2014/01/28 职场文书
爱心捐助倡议书
2014/05/19 职场文书
淘宝客服工作职责
2014/07/11 职场文书
党的生日演讲稿
2014/09/10 职场文书
教您怎么制定西餐厅运营方案 ?
2019/07/05 职场文书
Pytorch 使用tensor特定条件判断索引
2021/04/08 Python
教你怎么用Python实现GIF动图的提取及合成
2021/06/15 Python