SoCompressor-JS与CSS本地批量压缩、混淆、美化、格式化GUI工具.
来源:互联网 发布:mac win10 黑屏 编辑:程序博客网 时间:2024/05/21 06:59
SoCompressor已升级到2.0版本,需要的朋友可到 http://blog.csdn.net/tp7309/article/details/9799559 查看更新内容。
前一段时间在写web时自己写了几个JS文件用于前后台展示与交互,在后来要压缩js时发现基本都是带命令行的压缩工具,而且不能批量处理,在线压缩压缩完毕之后得一个个下,最可悲的是还需要自己重命名文件并且选择下载位置,太麻烦了。后来再网上搜了一下,发现这类GUI工具确定比较少,即使有功能也少的可怜(最无语的是有的出错不报,很郁闷),恰好最近想再练练winform,所以就萌生了自己写一个相关用途的小工具的想法,当然由于水平有限界面做的很难看,各位见谅,不过功能虽简单应该还是有一点实用价值的吧。
软件起了个名:SoCompressor,需要.Net Framework3.5的支持。
本小工具有以下几个特点:
1.压缩、混淆、美化、格式化都支持,断网条件下可以使用,软件不是使用的在线API.
1.支持批量操作,可以同时处理JS与CSS文件,可以多文件导入,多文件夹搜寻,当然直接复制代码进行操作也可。
2.可以选择对原文件的备份处理操作:如 “在各原文件所在目录新建名为"SoCompressor_backup"的文件夹并将原文件移到到此目录下”,"将原文件名附加标识".bak"以备份原文件“,移动到桌面,或者不进行处理等。
3.可以在备份目录下生成还原脚本。此还原脚本的作用不是压缩备份原文件,而是可以将最近一次用SoCompressor备份的原文件以其备份前的文件名还原到其各自的应有位置(有点绕。。)。
3.对输出文件的文件名可自定义附加标识,也有预设标识,如".min",则如果原文件名为a.js,那么输出文件的文件名则为a.min.js.
4.输出路径问题。有时候我们对不同目录下的文件一起压缩,这时候如果用传统的方法我们还得指定一个统一的输出路径,然后再将文件一个个导到其它地方,所以为了方便除了可以自定义输出路径外,也可以让输出文件与其各自对应的原文件位置相同。
5.支持多个处理引擎,目前添加了YUI Compressor与UglifyJS,如果后续有需要的话还会添加.各个处理引擎的详细参数设置在“设置”里面可以调整。关于UglifyJS:大家都知道如果要使用UglifyJS的话需要Node.js环境,所以我在软件里面加了处理引擎初始化,如果大家要使用UglifyJS而没有配置好的话,软件会自动配置Node.js环境与UglifyJS,这也是安装包颇大的原因,包含了Node.js在x86与x64的两个安装包。
配几张图。
贴一段其中的处理代码:
public class JSYUI:ISoCompressor { public string CompressionType { get; set; } public bool DisableOptimizations { get; set; } public bool IgnoreEval { get; set; } public bool ObfuscateJavascript { get; set; } public bool PreserveAllSemicolons { get; set; } public FileInfoAndException Execute(string inFile, string outFile, Encoding encoding) { FileInfoAndException fe = new FileInfoAndException(); string strContent = ""; try { Yahoo.Yui.Compressor.JavaScriptCompressor jsCompressor = new Yahoo.Yui.Compressor.JavaScriptCompressor(); jsCompressor.Encoding = encoding; Yahoo.Yui.Compressor.CompressionType ct1 = Yahoo.Yui.Compressor.CompressionType.Standard; switch (CompressionType) { case "Standard": ct1 = Yahoo.Yui.Compressor.CompressionType.Standard; break; case "None": ct1 = Yahoo.Yui.Compressor.CompressionType.None; break; } jsCompressor.CompressionType = ct1; jsCompressor.DisableOptimizations = this.DisableOptimizations; jsCompressor.IgnoreEval = this.IgnoreEval; //大小写变换 jsCompressor.ObfuscateJavascript = this.ObfuscateJavascript; //代码混淆 jsCompressor.PreserveAllSemicolons = this.PreserveAllSemicolons; //保留所有分号 jsCompressor.ThreadCulture = System.Globalization.CultureInfo.CurrentCulture; strContent = jsCompressor.Compress(System.IO.File.ReadAllText(inFile, encoding)); System.IO.File.WriteAllText(outFile, strContent); fe.outFileInfo = new FileInfo(outFile); } catch (Exception e) { fe.strException = "处理文件时出错,错误原因:" + e.Message; //此处在之后要改为捕捉具体的异常 } return fe; } public bool Init() { return true; } } public class CSSYUI:ISoCompressor { public string CompressionType { get; set; } public bool RemoveComments { get; set; } public FileInfoAndException Execute(string inFile, string outFile, Encoding encoding) { FileInfoAndException fe = new FileInfoAndException(); string strContent = ""; try{ Yahoo.Yui.Compressor.CssCompressor cssCompressor = new Yahoo.Yui.Compressor.CssCompressor(); Yahoo.Yui.Compressor.CompressionType ct1 = Yahoo.Yui.Compressor.CompressionType.Standard; switch (CompressionType) { case "Standard": ct1 = Yahoo.Yui.Compressor.CompressionType.Standard; break; case "None": ct1 = Yahoo.Yui.Compressor.CompressionType.None; break; } cssCompressor.CompressionType = ct1; cssCompressor.RemoveComments = this.RemoveComments; strContent = cssCompressor.Compress(System.IO.File.ReadAllText(inFile, encoding)); System.IO.File.WriteAllText(outFile, strContent); fe.outFileInfo = new FileInfo(outFile); }catch(Exception e) { fe.strException = "处理文件时出错,错误原因:" + e.Message; //此处在之后要改为捕捉具体的异常 } return fe; } public bool Init() { return true; } }
- SoCompressor-JS与CSS本地批量压缩、混淆、美化、格式化GUI工具.
- HTML/CSS/Javascript代码在线压缩、格式化(美化)工具
- HTML/CSS/Javascript代码在线压缩、格式化(美化)工具
- HTML/CSS/Javascript代码在线压缩、格式化(美化)工具
- HTML/CSS/Javascript代码在线压缩、格式化(美化)工具
- HTML/CSS/Javascript代码在线压缩、格式化(美化)工具
- HTML/CSS/Javascript代码在线压缩、格式化(美化)工具
- js css 压缩混淆
- 批量压缩JS /CSS
- gulp 压缩合并Css 混淆压缩js
- CSS代码压缩/格式化工具
- CSS压缩与优化工具 ,JS压缩工具
- js压缩混淆加密工具,解密工具
- 使用uglifyjs工具来压缩美化js
- 省时利器:代码美化与格式化工具
- 使用uglify给js、css 压缩、混淆
- JS代码压缩混淆工具使用说明
- JS代码压缩混淆工具使用说明
- 数据库字段中存在单引号的处理
- VirtualBox 扩展包卸载或安装失败(VERR_ALREADY_EXISTS)
- ubuntu 配置jdk
- jquery--ajax 返回json html用法
- 黑马程序员_面向对象(一)
- SoCompressor-JS与CSS本地批量压缩、混淆、美化、格式化GUI工具.
- Hadoop 写SequenceFile文件 源代码
- [Professional.Flash.Mobile.Development]
- Qt 无边框、透明、可移动、的个性窗体案例详解
- 《Linux keepalived与lvs的深入分析》
- W3C DOM 规范和时间线
- Linux学习笔记(二)命令格式与简单命令
- C++语法基础--泛型算法(generic algorithm)--transform
- Http 请求处理流程