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 相关文章推荐
让页面上两个div中的滚动条(滑块)同步运动示例
Aug 07 Javascript
使用JS取得焦点(focus)元素代码
Mar 22 Javascript
js实现不重复导入的方法
Mar 02 Javascript
AngularJS中的过滤器filter用法完全解析
Apr 22 Javascript
Node.js的环境安装配置(使用nvm方式)
Oct 11 Javascript
基于jQuery实现定位导航位置效果
Nov 15 jQuery
angular1.x ui-route传参的三种写法小结
Aug 31 Javascript
使用apifm-wxapi模块中的问题及解决方法
Aug 05 Javascript
layer.js之回调销毁对话框的例子
Sep 11 Javascript
JavaScript交换两个变量方法实例
Nov 25 Javascript
JavaScript实现答题评分功能页面
Jun 24 Javascript
JavaScript实现手风琴效果
Feb 18 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 攻击方法之谈php+mysql注射语句构造
2009/10/30 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
2013/05/06 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
2016/01/05 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
为你的网站增加亮点的9款jQuery插件推荐
2011/05/03 Javascript
JavaScript实现拼音排序的方法
2012/11/20 Javascript
选择器中含有空格在使用示例及注意事项
2013/07/31 Javascript
jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
2014/03/27 Javascript
使用Raygun来自动追踪AngularJS中的异常
2015/06/23 Javascript
js如何实现淡入淡出效果
2020/11/18 Javascript
常见的javascript跨域通信方法
2015/12/31 Javascript
jQuery操作json常用方法示例
2017/01/04 Javascript
jQuery树控件zTree使用方法详解(一)
2017/02/28 Javascript
微信小程序 动画的简单实例
2017/10/12 Javascript
angularJs中ng-model-options设置数据同步的方法
2018/09/30 Javascript
ES6 如何改变JS内置行为的代理与反射
2019/02/11 Javascript
微信小程序textarea层级过高的解决方法
2019/03/04 Javascript
Vue组件实现触底判断
2019/06/26 Javascript
webpack+express实现文件精确缓存的示例代码
2020/06/11 Javascript
Python中字典(dict)合并的四种方法总结
2017/08/10 Python
使用Django和Python创建Json response的方法
2018/03/26 Python
如何利用python查找电脑文件
2018/04/27 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
2019/08/12 Python
python使用梯度下降算法实现一个多线性回归
2020/03/24 Python
python 画图 图例自由定义方式
2020/04/17 Python
html5/css3响应式页面开发总结
2018/10/16 HTML / CSS
HTML5印章绘制电子签章图片(中文英文椭圆章、中文英文椭圆印章)
2019/06/03 HTML / CSS
德国低价购买灯具和家具网站:Style-home.de
2016/11/25 全球购物
环法自行车赛官方商店:Le Tour de France
2017/08/27 全球购物
专科毕业生学习生活的自我评价
2013/10/26 职场文书
金融行业职业生涯规划范文
2014/01/17 职场文书
医学生临床实习自我评价
2014/03/07 职场文书
建筑工程专业大学生求职信
2014/04/23 职场文书
幼师中班个人总结
2015/02/12 职场文书
员工旷工检讨书
2015/08/15 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书