gulp-uglify编译时,去除全部注释或保留部分注释, 以及统一添加公共注释
使用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编译时,去除全部注释或保留部分注释, 以及统一添加公共注释相关推荐
- 万能的APT!编译时注解的妙用
转载自:http://zjutkz.net/2016/04/07/万能的APT!编译时注解的妙用/ 本篇文章会带你了解什么是注解,注解的用法和分类,并且从knight和butterKnife的使用方式 ...
- 【Android APT】编译时技术 ( 编译时注解 和 注解处理器 依赖库 )
文章目录 一.编译时注解和注解处理器 二.创建 编译时注解 和 注解处理器 三.添加 编译时注解 和 注解处理器 依赖库依赖 四.博客资源 一.编译时注解和注解处理器 上一篇博客 [Android A ...
- 【Android APT】编译时技术 ( ButterKnife 原理分析 )
文章目录 一.编译时技术简介 二.ButterKnife 原理分析 二.ButterKnife 生成 Activity_ViewBinding 代码分析 一.编译时技术简介 APT ( Annotat ...
- 交叉编译指定运行时库路径_运行时vs编译时类路径
交叉编译指定运行时库路径 这确实应该是一个简单的区别,但是我一直在回答有关Stackoverflow的许多类似问题,并且经常有人误解此事. 那么,什么是类路径? 应用程序所需的一组所有类(以及带有类的 ...
- 运行时vs编译时类路径
这确实应该是一个简单的区别,但是我一直在回答有关Stackoverflow的许多类似问题,并且经常有人误解此事. 那么,什么是类路径? 应用程序所需的一组所有类(以及带有类的jar)的集合. 但是有两 ...
- VS编译时使用/去除NuGet管理库
原文链接:VS编译时自动下载NuGet管理的库 之前一直使用NuGet来管理一些第三方的库,但是每次check in代码时候为了保证编译通过,都需要把对应的packages check in. 比较耗 ...
- 手动编译 lombok_Lombok,一种编译时Java注释预处理器,可最大程度地减少代码大小...
手动编译 lombok 在本文中,我们将看到如何在常规Java代码中使用lombok来最大程度地减少代码长度和冗余. 什么是Lombok? Lombok,一个编译时注释预处理器,有助于在编译时注入一些 ...
- Lombok,一种编译时Java注释预处理器,可最大程度地减少代码大小
在本文中,我们将看到如何在常规Java代码中使用lombok来最小化代码长度和冗余. 什么是Lombok? Lombok,一个编译时注释预处理器,有助于在编译时注入一些代码. 在详细介绍之前,我要求您 ...
- java使用cmd编译中文时错误,解决Notepad++编写的Java程序在cmd窗口编译时中文注释报错问题...
解决Notepad++编写的Java程序在cmd窗口编译时中文注释报错问题 解决Notepad++编写的Java程序在cmd窗口编译时中文注释报错问题 在刚开始学习Java的过程中,考虑到记事本应用没 ...
最新文章
- linux 下挂载光盘
- hashmap转红黑树的阈值为8_面试必问的HashMap,一次彻底帮你搞定HashMap源码
- oracle z中rowid,如何将索引块里面的rowid和表里面的rowid对应起来?
- 日本比中国快一个小时,泰国比中国慢一个小时
- python 百度词典_python在线抓取百度词典的翻译结果翻译单词
- 什么是Handler(二)
- 怎样判断网页是静态还是伪静态呢
- 关于电脑自动获取和静态IP的问题
- mac安装python3.7两个版本_MAC下同时安装Python2和Python3
- python2.7怎么下载安装_Windows平台下python2.7如何安装Beautiful Soup
- MG3000系列设备IP修改内容
- div+css页面布局实战
- 史上最全的工控类软件链接 快收藏备用吧
- HSQL调优的一些个人见解
- 产品分析报告—网易云音乐
- 宠物商家必须给猫狗植入芯片,6月1日生效
- 由浅入深讲二叉树4种遍历算法的由来
- 20、随机图片验证码API接口,免费好用
- 使用Jetty运行项目报错:Form too large或Form too many keys
- 【记录十九】JCR2.0 节点类型
热门文章
- Android 壁纸横屏显示一半黑屏
- 分享到豆瓣/QQ/开心网/人人网/百度/Google等代码
- 用python写 祝你生日快乐英文_八种祝你生日快乐英文表达,太实用了!
- radeon VCE init error(-22)解决方法
- 怎么让人物脚贴地 模型_请问3D游戏角色的人物模型贴图都是怎么做出来的
- 笔记本电脑故障-内存条
- Vue+OpenLayers入门(加载高德在线地图)
- 蓝色扁平化年终总结PPT模板-优页文档
- 惠普计划裁员16%:未来3年计划裁撤7000-9000个岗位
- 第十八次CSP认证总结