gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)


Posted in Javascript onAugust 24, 2016

gulp简介:

gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器;她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成;使用她,我们不仅可以很愉快的编写代码,而且大大提高我们的工作效率。

gulp是基于Nodejs的自动任务运行器, 她能自动化地完成 javascript/coffee/sass/less/html/image/css 等文件的的测试、检查、合并、压缩、格式化、浏览器自动刷新、部署文件生成,并监听文件在改动后重复指定的这些步骤。在实现上,她借鉴了Unix操作系统的管道(pipe)思想,前一级的输出,直接变成后一级的输入,使得在操作上非常简单。通过本文,我们将学习如何使用Gulp来改变开发流程,从而使开发更加快速高效。

gulp 和 grunt 非常类似,但相比于 grunt 的频繁 IO 操作,gulp 的流操作,能更快地更便捷地完成构建工作。

今天学习gulp时候,用到gulp-uglify压缩js模块,遇到的一个问题-当用gulp.watch来监听js文件的变动时出现重复压缩的问题

目录结构如下:

gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)

gulpfile.js代码如下:

var gulp = require('gulp');
var uglify = require('gulp-uglify'); 
var rename = require('gulp-rename');
gulp.task('uglify', function() {
gulp.src('./src/js/*.js')
.pipe(rename({suffix:'.min'}))
.pipe(uglify())
.pipe(gulp.dest('./src/js'));
});
var watcher = gulp.watch('./src/js/*.js', ['uglify']);
watcher.on('change', function(event) {
console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
});

执行gulp uglify命令后:

gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)

也生成了对应的*.min.js:

gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)

但是当我打开一个kong.js文件重新保存后,会出现下面的情况:

gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)

保存一次就会重新压缩一遍,会出现很多*.min.min...js之类的js压缩文件,而且只有第一个kong.min.js值会跟着kong.js改变而改变,后来查了下文档,别人写有关gulp-uglify的内容,发现可以用!来筛除掉min.js,不让它压缩,更改后的代码:

var gulp = require('gulp');
var uglify = require('gulp-uglify'); 
var rename = require('gulp-rename');
gulp.task('uglify', function() {
gulp.src(['./src/js/*.js','!./src/js/*.min.js'])
.pipe(rename({suffix:'.min'}))
.pipe(uglify())
.pipe(gulp.dest('./src/js'));
});
var watcher = gulp.watch('./src/js/*.js', ['uglify']);
watcher.on('change', function(event) {
console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
});

以上所述是小编给大家介绍的gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery 关于伪类选择符的使用说明
Apr 24 Javascript
JS操作CSS随机改变网页背景实现思路
Mar 10 Javascript
javascript制作坦克大战全纪录(1)
Nov 27 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
Oct 26 Javascript
jQuery实现图片轮播效果代码
Sep 27 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
Feb 23 Javascript
最新Javascript程序员面试试题和解题方法
Nov 23 Javascript
jQuery实现右侧抽屉式在线客服功能
Dec 25 jQuery
实例详解Node.js 函数
Jun 10 Javascript
React事件处理的机制及原理
Dec 03 Javascript
微信小程序接入vant Weapp组件的详细步骤
Oct 28 Javascript
微信小程序实现单个或多个倒计时功能
Nov 01 Javascript
JS判断是否在微信浏览器打开的简单实例(推荐)
Aug 24 #Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
Aug 24 #Javascript
AngularJS下对数组的对比分析
Aug 24 #Javascript
AngularJS  $modal弹出框实例代码
Aug 24 #Javascript
AngularJS中比较两个数组是否相同
Aug 24 #Javascript
javascript深拷贝(deepClone)详解
Aug 24 #Javascript
js实现无缝循环滚动
Jun 23 #Javascript
You might like
百度工程师讲PHP函数的实现原理及性能分析(一)
2015/05/13 PHP
magento后台无法登录解决办法的两种方法
2016/12/09 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
微信JSSDK分享功能图文实例详解
2019/04/08 PHP
JavaScript 直接操作本地文件的实现代码
2009/12/01 Javascript
jQuery Deferred和Promise创建响应式应用程序详细介绍
2013/03/05 Javascript
Javascript中构造函数要注意的一些坑
2017/01/23 Javascript
jQuery Plupload上传插件的使用
2017/04/19 jQuery
详解angular部署到iis出现404解决方案
2018/08/14 Javascript
vue里面使用mui的弹出日期选择插件实例
2018/09/16 Javascript
vue路由传参的基本实现方式小结【三种方式】
2020/02/05 Javascript
vue通过过滤器实现数据格式化
2020/07/20 Javascript
javascript实现打砖块小游戏(附完整源码)
2020/09/18 Javascript
vue 虚拟DOM的原理
2020/10/03 Javascript
Python复制文件操作实例详解
2015/11/10 Python
Python中shutil模块的学习笔记教程
2017/04/04 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
2018/02/26 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
2019/07/14 Python
对python中的装包与解包实例详解
2019/08/24 Python
python列表生成器迭代器实例解析
2019/12/19 Python
python 自动识别并连接串口的实现
2021/01/19 Python
宝拉珍选官方旗舰店:2%水杨酸精华液,收缩毛孔粗大和祛痘
2018/07/01 全球购物
SportsDirect.com马来西亚:英国第一体育零售商
2018/11/21 全球购物
init进程的作用
2015/08/20 面试题
大学毕业通用个人的求职信
2013/12/08 职场文书
英语自荐信常用语句
2013/12/13 职场文书
经济管理专业自荐信
2013/12/30 职场文书
铁路个人事迹材料
2014/01/30 职场文书
领导接待方案
2014/03/13 职场文书
重大事项社会稳定风险评估方案
2014/06/15 职场文书
八达岭长城导游词
2015/01/30 职场文书
财务出纳岗位职责
2015/03/31 职场文书
python异常中else的实例用法
2021/06/15 Python
如何用Python搭建gRPC服务
2021/06/30 Python
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript