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接口实现代码 (Interfaces In JavaScript)
Jun 11 Javascript
Jquery操作radio的简单实例
Jan 06 Javascript
Egret引擎开发指南之创建项目
Sep 03 Javascript
jQuery实现带渐显效果的人物多级关系图代码
Oct 16 Javascript
jquery实现二级导航下拉菜单效果
Dec 18 Javascript
基于vue2.0+vuex+localStorage开发的本地记事本示例
Feb 28 Javascript
详解Node.js 命令行程序开发教程
Jun 07 Javascript
vue webuploader 文件上传组件开发
Sep 23 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
Jul 25 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
Sep 21 Javascript
Bootstrap 按钮样式与使用代码详解
Dec 09 Javascript
JS实现使用POST方式发送请求
Aug 30 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高级OOP技术演示
2009/08/27 PHP
php设计模式 Strategy(策略模式)
2011/06/26 PHP
解析:通过php socket并借助telnet实现简单的聊天程序
2013/06/18 PHP
php5.3不能连接mssql数据库的解决方法
2014/12/27 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
2016/05/13 PHP
Javascript常考语句107条收集
2010/03/09 Javascript
使用Jquery搭建最佳用户体验的登录页面之记住密码自动登录功能(含后台代码)
2011/07/10 Javascript
关于html+ashx开发中几个问题的解决方法
2011/07/18 Javascript
JS解决ie6下png透明的方法实例
2013/08/02 Javascript
js实现按钮加背景图片常用方法
2014/11/01 Javascript
详解JavaScript中循环控制语句的用法
2015/06/03 Javascript
Active控件问题小结(附解决办法)
2016/06/09 Javascript
前端 Vue.js 和 MVVM 详细介绍
2016/12/29 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
vue中如何使用ztree
2018/02/06 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
2019/04/10 Javascript
JS用最简单的方法实现四舍五入
2019/08/27 Javascript
JS设置自定义快捷键并实现图片上下左右移动
2019/10/17 Javascript
原生js实现自定义消息提示框
2020/11/19 Javascript
Python中函数的参数定义和可变参数用法实例分析
2015/06/04 Python
简单解决Python文件中文编码问题
2015/11/22 Python
简单了解Python中的几种函数
2017/11/03 Python
python实现图片文件批量重命名
2020/03/23 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
python3.x提取中文的正则表达式示例代码
2019/07/23 Python
使用TensorFlow对图像进行随机旋转的实现示例
2020/01/20 Python
利用python生成照片墙的示例代码
2020/04/09 Python
python 数据类型强制转换的总结
2021/01/25 Python
教育科学研究生自荐信
2013/10/09 职场文书
美容院经理岗位职责
2014/04/03 职场文书
环卫工人先进事迹材料
2014/06/02 职场文书
师范大学生求职信
2014/06/13 职场文书
2014年酒店服务员工作总结
2014/12/08 职场文书
适合青年人白手起家的创业项目分享
2019/08/16 职场文书
Oracle11g R2 安装教程完整版
2021/06/04 Oracle
使用CSS实现一个搜索引擎的原理解析
2021/09/25 HTML / CSS