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 相关文章推荐
利用javascript中的call实现继承
Jan 22 Javascript
Lazy Load 延迟加载图片的jQuery插件中文使用文档
Oct 18 Javascript
javascript Array.prototype.slice的使用示例
Nov 14 Javascript
Jquery下EasyUI组件中的DataGrid结果集清空方法
Jan 06 Javascript
JS基于Ajax实现的网页Loading效果代码
Oct 27 Javascript
react实现pure render时bind(this)隐患需注意!
Mar 09 Javascript
jQuery+Ajax实现用户名重名实时检测
Jun 01 jQuery
JS实现登录页密码的显示和隐藏功能
Dec 06 Javascript
浅析vue-router原理
Oct 19 Javascript
Vuex的基本概念、项目搭建以及入坑点
Nov 04 Javascript
JS实现图片切换效果
Nov 17 Javascript
解决Can't find variable: SockJS vue项目的问题
Sep 22 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的错误信息
2006/10/09 PHP
PHP通过header实现文本文件下载的代码
2010/08/08 PHP
php小偷相关截取函数备忘
2010/11/28 PHP
基于PHP5魔术常量与魔术方法的详解
2013/06/13 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(七)
2014/06/23 PHP
php实现随机生成易于记忆的密码
2015/06/19 PHP
SAE实时日志接口SDK用法示例
2016/10/09 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
让任务管理器中的CPU跳舞的js代码
2008/11/01 Javascript
关于取不到由location.href提交而来的上级页面地址的解决办法
2009/07/30 Javascript
用javascript判断IE版本号简单实用且向后兼容
2013/09/11 Javascript
jQuery - css() 方法示例详解
2014/01/16 Javascript
from表单多个按钮提交用onclick跳转不同action
2014/04/24 Javascript
Javascript 读取操作Sql中的Xml字段
2014/10/09 Javascript
js QQ客服悬浮效果实现代码
2014/12/12 Javascript
javascript实现英文首字母大写
2015/04/23 Javascript
JavaScript动态提示输入框输入字数的方法
2015/07/27 Javascript
jQuery中delegate()方法的用法详解
2016/10/13 Javascript
JavaScript之Canvas_动力节点Java学院整理
2017/07/04 Javascript
vue+vuex+axios+echarts画一个动态更新的中国地图的方法
2017/12/19 Javascript
用最少的JS代码写出贪吃蛇游戏
2018/01/12 Javascript
vue指令做滚动加载和监听等
2019/05/26 Javascript
vue中利用Promise封装jsonp并调取数据
2019/06/18 Javascript
vue.js实现h5机器人聊天(测试版)
2020/07/16 Javascript
[01:01:24]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第三局
2016/02/25 DOTA
python使用jieba实现中文分词去停用词方法示例
2018/03/11 Python
python调用并链接MATLAB脚本详解
2019/07/05 Python
基于Python函数和变量名解析
2019/07/19 Python
2014新年寄语
2014/01/20 职场文书
三八妇女节超市活动方案
2014/08/18 职场文书
民主生活会剖析材料
2014/09/30 职场文书
销售经理岗位职责
2015/01/31 职场文书
英文产品推荐信
2015/03/27 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
春节晚会开场白
2015/05/29 职场文书
Windows安装Anaconda3的方法及使用过程详解
2021/06/11 Python