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 相关文章推荐
js prototype 格式化数字 By shawl.qiu
Apr 02 Javascript
实现51Map地图接口(示例代码)
Nov 22 Javascript
JavaScript制作的可折叠弹出式菜单示例
Apr 04 Javascript
JavaScript获取table中某一列的值的方法
May 06 Javascript
Lua表达式和控制结构学习笔记
Dec 15 Javascript
Javascript HTML5 Canvas实现的一个画板
Apr 12 Javascript
JavaScript函数、闭包、原型、面向对象学习笔记
Sep 06 Javascript
vue数据操作之点击事件实现num加减功能示例
Jan 19 Javascript
JavaScript事件冒泡机制原理实例解析
Jan 14 Javascript
浅析JavaScript预编译和暗示全局变量
Sep 03 Javascript
React倒计时功能实现代码——解耦通用
Sep 18 Javascript
JavaScript实现缓动动画
Nov 25 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安装全攻略:APACHE
2006/10/09 PHP
用PHP和ACCESS写聊天室(九)
2006/10/09 PHP
php表单转换textarea换行符的方法
2010/09/10 PHP
php筛选不存在的图片资源
2015/04/28 PHP
PHP7 新特性详细介绍
2016/09/06 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
php如何获取Http请求
2020/04/30 PHP
jQuery each()方法的使用方法
2010/03/18 Javascript
js confirm()方法的使用方法实例
2013/07/13 Javascript
JS数组(Array)处理函数整理
2014/12/07 Javascript
安装使用Mongoose配合Node.js操作MongoDB的基础教程
2016/03/01 Javascript
简洁实用的BootStrap jQuery手风琴插件
2016/08/31 Javascript
利用jquery实现实时更新歌词的方法
2017/01/06 Javascript
荐书|您有一份JavaScript书单待签收
2017/07/21 Javascript
jquery-file-upload 文件上传带进度条效果
2017/11/21 jQuery
微信 jssdk 签名错误invalid signature的解决方法
2019/01/14 Javascript
如何利用vue+vue-router+elementUI实现简易通讯录
2019/05/13 Javascript
解决vue v-for src 图片路径问题 404
2019/11/12 Javascript
详解Python的Flask框架中的signals信号机制
2016/06/13 Python
深入解答关于Python的11道基本面试题
2017/04/01 Python
Python中list查询及所需时间计算操作示例
2018/06/21 Python
如何基于Python制作有道翻译小工具
2019/12/16 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
2020/05/15 Python
豆腐の盛田屋官网:日本自然派的豆乳面膜、肥皂、化妆水、乳液等
2016/10/08 全球购物
Expedia加拿大官方网站:加拿大最大的在线旅游提供商
2017/12/31 全球购物
公司前台辞职报告
2014/01/19 职场文书
大学生职业规划书的范本
2014/02/18 职场文书
2014年大学生党课心得体会范文
2014/03/29 职场文书
安全演讲稿开场白
2014/08/25 职场文书
庆七一主持词
2015/06/29 职场文书
优秀共产党员主要事迹材料
2015/11/05 职场文书
高中语文教学反思范文
2016/02/16 职场文书
python实现网络五子棋
2021/04/11 Python
vue Element-ui表格实现树形结构表格
2021/06/07 Vue.js
win10此电脑打不开怎么办 win10双击此电脑无响应的解决办法
2022/07/23 数码科技
详解Golang如何实现支持随机删除元素的堆
2022/09/23 Python