使用gulp-uglify压缩javascript文件,可以减小文件大小。有时需要完全压缩去除全部注释,有时则需要保留部分,具体如下详述:

1.安装gulp-uglify

gith地址:GitHub - terinjokes/gulp-uglify: Minify files with UglifyJS

2.基本使用

var gulp = require('gulp'),uglify = require('gulp-uglify');gulp.task('uglifyJs', function(){gulp.src('assets/js/*.js').pipe(uglify()).pipe(gulp.dest('dist/js'));
}); 

3.常用参数

gulp.task('uglifyJs', function(){gulp.src('assets/js/*.js').pipe(uglify({mangle: true,        //类型:Boolean 默认:true, 是否修改变量名compress: true,      //类型:Boolean 默认:true, 是否完全压缩})).pipe(gulp.dest('dist/js'));
}); 

4.去除全部注释

gulp.task('uglifyJs', function(){gulp.src('assets/js/*.js').pipe(uglify({output: {comments: true,        //类型:Boolean 默认:true, 是否保留注释}})).pipe(gulp.dest('dist/js'));
}); 

5.通过indexOf判断保留部分注释

gulp.task('uglifyJs', function(){gulp.src('assets/js/*.js').pipe(uglify({output: {comments: function(node, comment){//含有@date字符 部分的注释进行保留return comment.value.indexOf("@date")>=0;}    }})).pipe(gulp.dest('dist/js'));
}); //例如:
/*** @date 2020-12-30* 描述内容...*/

6.通过正则判断保留部分注释

gulp.task('uglifyJs', function(){gulp.src('assets/js/*.js').pipe(uglify({output: {comments: function(node, comment){//以!号开头 部分的注释进行保留return /^!/.test(comment.value);}}})).pipe(gulp.dest('dist/js'));
}); //例如:
/*!* 描述内容...*/

7.统一添加公共注释

gulp.task('uglifyJs', function(){gulp.src('assets/js/*.js').pipe(uglify({output: {preamble: "/** \r\n 版本所有 \r\n 填写日期 \r\n 填写作者信息 */"}})).pipe(gulp.dest('dist/js'));
}); 

gulp-uglify编译时,去除全部注释或保留部分注释, 以及统一添加公共注释相关推荐

  1. 万能的APT!编译时注解的妙用

    转载自:http://zjutkz.net/2016/04/07/万能的APT!编译时注解的妙用/ 本篇文章会带你了解什么是注解,注解的用法和分类,并且从knight和butterKnife的使用方式 ...

  2. 【Android APT】编译时技术 ( 编译时注解 和 注解处理器 依赖库 )

    文章目录 一.编译时注解和注解处理器 二.创建 编译时注解 和 注解处理器 三.添加 编译时注解 和 注解处理器 依赖库依赖 四.博客资源 一.编译时注解和注解处理器 上一篇博客 [Android A ...

  3. 【Android APT】编译时技术 ( ButterKnife 原理分析 )

    文章目录 一.编译时技术简介 二.ButterKnife 原理分析 二.ButterKnife 生成 Activity_ViewBinding 代码分析 一.编译时技术简介 APT ( Annotat ...

  4. 交叉编译指定运行时库路径_运行时vs编译时类路径

    交叉编译指定运行时库路径 这确实应该是一个简单的区别,但是我一直在回答有关Stackoverflow的许多类似问题,并且经常有人误解此事. 那么,什么是类路径? 应用程序所需的一组所有类(以及带有类的 ...

  5. 运行时vs编译时类路径

    这确实应该是一个简单的区别,但是我一直在回答有关Stackoverflow的许多类似问题,并且经常有人误解此事. 那么,什么是类路径? 应用程序所需的一组所有类(以及带有类的jar)的集合. 但是有两 ...

  6. VS编译时使用/去除NuGet管理库

    原文链接:VS编译时自动下载NuGet管理的库 之前一直使用NuGet来管理一些第三方的库,但是每次check in代码时候为了保证编译通过,都需要把对应的packages check in. 比较耗 ...

  7. 手动编译 lombok_Lombok,一种编译时Java注释预处理器,可最大程度地减少代码大小...

    手动编译 lombok 在本文中,我们将看到如何在常规Java代码中使用lombok来最大程度地减少代码长度和冗余. 什么是Lombok? Lombok,一个编译时注释预处理器,有助于在编译时注入一些 ...

  8. Lombok,一种编译时Java注释预处理器,可最大程度地减少代码大小

    在本文中,我们将看到如何在常规Java代码中使用lombok来最小化代码长度和冗余. 什么是Lombok? Lombok,一个编译时注释预处理器,有助于在编译时注入一些代码. 在详细介绍之前,我要求您 ...

  9. java使用cmd编译中文时错误,解决Notepad++编写的Java程序在cmd窗口编译时中文注释报错问题...

    解决Notepad++编写的Java程序在cmd窗口编译时中文注释报错问题 解决Notepad++编写的Java程序在cmd窗口编译时中文注释报错问题 在刚开始学习Java的过程中,考虑到记事本应用没 ...

最新文章

  1. linux 下挂载光盘
  2. hashmap转红黑树的阈值为8_面试必问的HashMap,一次彻底帮你搞定HashMap源码
  3. oracle z中rowid,如何将索引块里面的rowid和表里面的rowid对应起来?
  4. 日本比中国快一个小时,泰国比中国慢一个小时
  5. python 百度词典_python在线抓取百度词典的翻译结果翻译单词
  6. 什么是Handler(二)
  7. 怎样判断网页是静态还是伪静态呢
  8. 关于电脑自动获取和静态IP的问题
  9. mac安装python3.7两个版本_MAC下同时安装Python2和Python3
  10. python2.7怎么下载安装_Windows平台下python2.7如何安装Beautiful Soup
  11. MG3000系列设备IP修改内容
  12. div+css页面布局实战
  13. 史上最全的工控类软件链接 快收藏备用吧
  14. HSQL调优的一些个人见解
  15. 产品分析报告—网易云音乐
  16. 宠物商家必须给猫狗植入芯片,6月1日生效
  17. 由浅入深讲二叉树4种遍历算法的由来
  18. 20、随机图片验证码API接口,免费好用
  19. 使用Jetty运行项目报错:Form too large或Form too many keys
  20. 【记录十九】JCR2.0 节点类型

热门文章

  1. Android 壁纸横屏显示一半黑屏
  2. 分享到豆瓣/QQ/开心网/人人网/百度/Google等代码
  3. 用python写 祝你生日快乐英文_八种祝你生日快乐英文表达,太实用了!
  4. radeon VCE init error(-22)解决方法
  5. 怎么让人物脚贴地 模型_请问3D游戏角色的人物模型贴图都是怎么做出来的
  6. 笔记本电脑故障-内存条
  7. Vue+OpenLayers入门(加载高德在线地图)
  8. 蓝色扁平化年终总结PPT模板-优页文档
  9. 惠普计划裁员16%:未来3年计划裁撤7000-9000个岗位
  10. 第十八次CSP认证总结