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在vs2008及js文件中的无智能提示的解决方法
Dec 30 Javascript
简单几行JS Code实现IE邮件转发新浪微博
Jul 03 Javascript
javascript禁用键盘功能键让右击及其他键无效
Oct 09 Javascript
javascript里绝对用的上的字符分割函数总结
Jul 31 Javascript
javascript检测浏览器的缩放状态实现代码
Sep 28 Javascript
详解vue-validator(vue验证器)
Jan 16 Javascript
JavaScript中各数制转换全面总结
Aug 21 Javascript
ReactNative中使用Redux架构总结
Dec 15 Javascript
解决vue中post方式提交数据后台无法接收的问题
Aug 11 Javascript
tsconfig.json配置详解
May 17 Javascript
vue修改Element的el-table样式的4种方法
Sep 17 Javascript
微信小程序选择图片控件
Jan 19 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
第三节--定义一个类
2006/11/16 PHP
PHP实现从远程下载文件的方法
2015/03/12 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
JavaScript 对话框和状态栏使用说明
2009/10/25 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
2014/04/25 Javascript
js实现点击左右按钮轮播图片效果实例
2015/01/29 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
浅析Javascript ES6新增值比较函数Object.is
2016/08/24 Javascript
node.js连接MongoDB数据库的2种方法教程
2017/05/17 Javascript
微信小程序模版渲染详解
2018/01/26 Javascript
js自定义trim函数实现删除两端空格功能
2018/02/09 Javascript
vue实现点击按钮下载文件功能
2019/10/11 Javascript
vue实现从外部修改组件内部的变量的值
2020/07/30 Javascript
jQuery实现滑动开关效果
2020/08/02 jQuery
jQuery实现日历效果
2020/09/11 jQuery
Python open读写文件实现脚本
2008/09/06 Python
python简单的函数定义和用法实例
2015/05/07 Python
python采集百度百科的方法
2015/06/05 Python
Python中使用插入排序算法的简单分析与代码示例
2016/05/04 Python
Python发送邮件测试报告操作实例详解
2018/12/08 Python
NumPy 基本切片和索引的具体使用方法
2019/04/24 Python
python pymysql库的常用操作
2020/10/16 Python
轻松掌握CSS3中的字体大小单位rem的使用方法
2016/05/24 HTML / CSS
StubHub德国:购买和出售门票
2017/09/06 全球购物
美国儿童服装、家具和玩具精品店:Maisonette
2019/11/24 全球购物
迪斯尼假期(欧洲、中东及非洲):Disney Holidays EMEA
2021/02/15 全球购物
香奈儿美国官网:CHANEL美国
2020/05/20 全球购物
机械设计及其自动化专业推荐信
2013/10/31 职场文书
银行求职信个人范文
2013/12/16 职场文书
出国留学介绍信
2014/01/13 职场文书
升学宴演讲稿
2014/09/01 职场文书
2015年办公室工作总结范文
2015/03/31 职场文书
湘江北去观后感
2015/06/15 职场文书
大学生心理健康教育心得体会
2016/01/12 职场文书
原生JavaScript实现简单五子棋游戏
2021/06/28 Javascript
Python函数对象与闭包函数
2022/04/13 Python