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下判断一个元素是否存在的代码
Mar 05 Javascript
javascript Window及document对象详细整理
Jan 12 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件。
Dec 26 Javascript
jquery多行滚动/向左或向上滚动/响应鼠标实现思路及代码
Jan 23 Javascript
JavaScript:new 一个函数和直接调用函数的区别分析
Jul 10 Javascript
AngularJS ng-change 指令的详解及简单实例
Jul 30 Javascript
详解vue-cli + webpack 多页面实例应用
Apr 25 Javascript
jQuery手风琴的简单制作
May 12 jQuery
解决Mac下安装nmp的淘宝镜像失败问题
May 16 Javascript
vue生成token并保存到本地存储中
Jul 17 Javascript
JavaScript设计模式之享元模式实例详解
Jan 17 Javascript
手把手带你入门微信小程序新框架Kbone的使用
Feb 25 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在各种web服务器的运行模式详解
2013/06/03 PHP
php求正负数数组中连续元素最大值示例
2014/04/11 PHP
php实现Mongodb自定义方式生成自增ID的方法
2015/03/23 PHP
CodeIgniter连贯操作的底层原理分析
2016/05/17 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
laravel框架分组控制器和分组路由实现方法示例
2020/01/25 PHP
js的闭包的一个示例说明
2008/11/18 Javascript
跨浏览器开发经验总结(四) 怎么写入剪贴板
2010/05/13 Javascript
javascript的alert box在java中如何显示多行
2014/05/18 Javascript
node.js中的fs.lchmod方法使用说明
2014/12/16 Javascript
js实现鼠标滚轮控制图片缩放效果的方法
2015/02/20 Javascript
基于javascript实现单选及多选的向右和向左移动实例
2015/07/25 Javascript
jQuery垂直多级导航菜单代码分享
2015/08/18 Javascript
利用jQuery实现一个简单的表格上下翻页效果
2017/03/14 Javascript
node文件上传功能简易实现代码
2017/06/16 Javascript
javascript兼容性(实例讲解)
2017/08/15 Javascript
Mongoose实现虚拟字段查询的方法详解
2017/08/15 Javascript
jquery css实现流程进度条
2020/03/26 jQuery
解决ant Design Search无法输入内容的问题
2020/10/29 Javascript
Python实现PS滤镜的万花筒效果示例
2018/01/23 Python
python爬虫获取淘宝天猫商品详细参数
2020/06/23 Python
python3+requests接口自动化session操作方法
2018/10/13 Python
简单了解Python matplotlib线的属性
2019/06/29 Python
Python为何不能用可变对象作为默认参数的值
2019/07/01 Python
python 元组的使用方法
2020/06/09 Python
使用OpenCV校准鱼眼镜头的方法
2020/11/26 Python
什么是TCP/IP
2014/07/27 面试题
后勤服务中心总经理工作职责
2014/03/03 职场文书
兴趣小组活动总结
2014/05/05 职场文书
投标承诺书怎么写
2014/05/24 职场文书
民族团结演讲稿范文
2014/08/27 职场文书
党员学习群众路线教育实践活动对照检查材料
2014/09/23 职场文书
2014年幼儿园安全工作总结
2014/11/10 职场文书
考试后的感想
2015/08/07 职场文书
八年级作文之感悟亲情
2019/11/20 职场文书
python执行js代码的方法
2021/05/13 Python