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的表格操作插件
Apr 22 Javascript
window.location不跳转的问题解决方法
Apr 17 Javascript
node.js入门教程
Jun 01 Javascript
js鼠标悬浮出现遮罩层的方法
Jan 28 Javascript
jQuery实现流动虚线框的方法
Jan 29 Javascript
jQuery 常用代码集锦(必看篇)
May 16 Javascript
三种方式实现瀑布流布局
Feb 10 Javascript
详解A标签中href=""的几种用法
Aug 20 Javascript
AngularJS实现controller控制器间共享数据的方法示例
Oct 30 Javascript
bootstrap table支持高度百分比的实例代码
Feb 28 Javascript
JS将网址url转化为JSON格式的方法
Jul 02 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
Jul 20 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
单位速度在实战中的运用
2020/03/04 星际争霸
预告映像公开!第1章续篇剧场版动画《Princess Principal Crown Handler》4月10日上映!
2020/03/06 日漫
PHP字符串处理的10个简单方法
2010/06/30 PHP
php警告Creating default object from empty value 问题的解决方法
2014/04/02 PHP
php 模拟 asp.net webFrom 按钮提交事件实例
2014/10/13 PHP
php输出指定时间以前时间格式的方法
2015/03/21 PHP
php约瑟夫问题解决关于处死犯人的算法
2015/03/23 PHP
示例详解Laravel重置密码代码重构
2016/08/10 PHP
PHP实现按之字形顺序打印二叉树的方法
2018/01/16 PHP
找到了一篇jQuery与Prototype并存的冲突的解决方法
2007/08/29 Javascript
使用Node.js配合Nginx实现高负载网络
2015/06/28 Javascript
JavaScript动态提示输入框输入字数的方法
2015/07/27 Javascript
JS实现Fisheye效果动感放大菜单代码
2015/10/21 Javascript
基于javascript实现右下角浮动广告效果
2016/01/08 Javascript
jquery及js实现动态加载js文件的方法
2016/01/21 Javascript
JavaScript-定时器0~9抽奖系统详解(代码)
2017/08/16 Javascript
vue实现在表格里,取每行的id的方法
2018/03/09 Javascript
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
2019/06/06 jQuery
Jquery动态列功能完整实例
2019/08/30 jQuery
JavaScript实现移动端带transition动画的轮播效果
2020/03/24 Javascript
python使用append合并两个数组的方法
2015/04/28 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
2015/11/04 Python
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
2017/05/03 Python
pandas 数据索引与选取的实现方法
2019/06/21 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
2021/01/05 Python
python爬虫beautifulsoup库使用操作教程全解(python爬虫基础入门)
2021/02/19 Python
New Balance美国官网:运动鞋和健身服装
2017/04/11 全球购物
LUISAVIAROMA中国官网:时尚奢侈品牌购物网站
2020/11/01 全球购物
软件测试面试题
2014/01/05 面试题
腾讯广告词
2014/03/19 职场文书
立志成才演讲稿
2014/09/04 职场文书
CSS中em的正确打开方式详解
2021/04/08 HTML / CSS
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL
整理Python中常用的conda命令操作
2021/06/15 Python
一小时学会TensorFlow2之基本操作2实例代码
2021/09/04 Python
python模板入门教程之flask Jinja
2022/04/11 Python