本文为大家推荐一款JavaScript自动压缩插件,由于是测试的版本,所以暂时只支持VS2008。安装后重启VisualStudio即可。在js文件上点右键可以在右键菜单看到“启用压缩”(请谅解我和春晚学的植入广告行为)
点击“启用压缩”即可,这样在js文件下就会折叠出现一个.min.js文件这个文件就是压缩后的js文件。
只要对js文件做任何的修改修改后min.js文件也会同步压缩。这样开发的时候页面引用min.js,然后编辑的时候编辑js文件即可。
源文件
压缩后的min.js文件
如果想取消js文件的自动压缩,只要再在js文件上点右键,取消“启用压缩”的勾选就可以了。
由于对JS压缩算法不是很熟悉,因此我将CSDN上chinarenhcw开发的JS Minifier(http://download.csdn.net/source/2699409)的压缩算法反编译了拿来用,对这种未经原作者同意的逆向工程行为表示抱歉,chinarenhcw兄弟如果看到这篇文章不知道有没有兴趣一起开发这个插件。
chinarenhcw的压缩算法只是进行了空行等的处理,没有进行变量重命名等进一步的压缩,为了发挥社区的力量,我将这个插件提供了一个扩展的机制,对JS压缩算法比较熟悉的朋友可以编写压缩算法,然后即使不懂VSX开发业没关系,只要提供一个dll即可。
大体步骤如下:创建一个类库项目,类库中包含一个public类,类中提供一个方法名为JsMin的public方法,方法包含一个string类型参数和一个string类型返回值,参数为压缩前的js字符串,返回值为压缩后的字符串,例如
class Minifier
{
public string JsMin(string js)
{
return js.Replace(" ","");//压缩js字符串
}
}
开发完成后打开VisualStudio主菜单“工具”→“选项”→“JSMin”,修改“JSMin压缩插件路径”选择压缩dll,然后“插件类全名”添加插件类的全名(命名空间+类名)即可。这样就是用你提供的压缩算法来进行压缩了,如果想恢复默认的压缩算法,将这两个选项清空即可。
YUI Compressor是一个非常棒的JS压缩工具,貌似JQuery都是用它压缩的,因此我感觉咱们没必要重新发明轮子,将YUI Compressor集成过来就可以,由于YUI Compressor是java开发的,因此集成到.net中比较麻烦,我有两个想法:
1、外调YUI Compressor,不过要求同时安装JDK,比较麻烦。
2、用IKVM将YUI Compressor编译成.net 的dll,这样就简单很多了,不过没研究过IKVM,最近事情也比较多,没精力做这件事,所以只能这里提供一个思路了。
高手写了更好用的压缩dll别忘了来这里分享给更多的朋友。
这个VisualStudio插件开发中的一些零散资料(假设VSSDK安装在C:\Program Files\Microsoft Visual Studio 2008 SDK):
1、制作安装包。
1)添加一个“安装项目”
2)在安装项目上点击右键,选择“添加”→“项目输出”,选择插件项目
3)命令行进入C:\Program Files\Microsoft Visual Studio 2008 SDK\VisualStudioIntegration\Tools\Bin,然后运行
regpkg /root:Software\Microsoft\VisualStudio\9.0 /regfile:ItcastJSMin.reg /codebase D:\我的文档\MyCode\VS插件开发\JS压缩\ItcastJSMin\bin\Debug\ItcastJSMin.dll
其中ItcastJSMin.reg 为生成的注册表文件,D:\我的文档\MyCode\VS插件开发\JS压缩\ItcastJSMin\bin\Debug\ItcastJSMin.dll 为插件项目生成的dll,注意要写全路径,不要写相对路径,否则可能会报错“regpkg : error : 无效的 URI: 无法确定 URI 的格式”(参考
http://www.cnblogs.com/ApolloSun/archive/2010/02/25/1673665.html)。
4)将生成的ItcastJSMin.reg用文本编辑器打开,将其中的“D:\\我的文档\\MyCode\\VS插件开发\\JS压缩\\ItcastJSMin\\bin\\Debug\\”替换成“[TARGETDIR]”,将“C:\\WINDOWS\\system32\\”替换成“[SYSTEMFOLDER]”这样由安装项目在安装时将reg中的路径替换为安装的路径。保存时注意编码要为Unicode。
5)在安装项目上点击右键,选择“视图”→“注册表”,然后在“目标计算机上的注册表”上点击右键,选择“导入”,导入上面修改后的ItcastJSMin.reg。
7)一般需要在安装了插件后运行“devenv.exe /setup”来确保插件安装,所以代码中添加了DevenvSetupCustomAction。
8)在安装项目上点击右键“生成”,就可以生成安装包了。
2、关于PLK
安装VSSDK以后开发的VSPackage使用开发人员的PLK,如果想制作安装包让没有安装VSSDK的人也能安装的话需要到微软网站上(http://msdn.microsoft.com/en-us/vsx/cc655795.aspx)申请PLK,注意申请时的产品名、公司名不能含有中文和空格;这个产品名、公司名必须和VSPackage中ProvideLoadKey中使用的产品名、公司名一致。
申请到PLK以后在插件项目中创建一个资源文件(resx),然后在文件中添加一个字符串资源,名称为1(任意,只要和后面一致就可以),值为申请到的PLK。
然后在VSPackage上添加“[ProvideLoadKey("Standard", "1.0", "JSMinPackage", "Itcast", 1)]”,其中,1表示在Resource.resx中名字为1的为PLK。"Standard"、"1.0"、 "JSMinPackage"、"Itcast"为VS版本、插件版本、插件名称、公司名,必须和PLK申请时填写的一致。
在VisualStudio启动的时候添加“/NoVSIP”选项就可以测试插件在没有VSSDK的机器上是否能正确运行“devenv.exe /NoVSIP”。
3、手动添加vsct文件的方法
参考如下文章:
http://www.cnblogs.com/ApolloSun/archive/2010/02/25/1673483.html
http://social.msdn.microsoft.com/Forums/en/vsx/thread/4bcceb62-abe6-4c9e-9f39-826857c9aadb
安装包下载:http://files.cnblogs.com/rupeng/JSMinSetup20101106_bin.zip
源代码下载(需要安装VSSDK):http://files.cnblogs.com/rupeng/JSMin20101106_src.zip
标签:
分享到:
相关推荐
纯原生Javascript实现的移动端多级选择器插件,可通过配置实现多级联动。压缩后JS文件只有3.96KB。
最近搞js混淆,找了好多地方都觉得效果不好。最终找到的这个Eclipse插件很不错,将该压缩包下载后,将里面的文件解压到eclipse的dropins目录下即可
现有的JS代码压缩工具都是网页版的,例如ESC,shrinksafe等,他们都是在网页上用js本身实现对代码的压缩。由于网页的局限性,很难很好的管理压缩任务。聚问网络开发的js压缩专家(JsPacker)v1.0 是同功能的桌面程序,...
JavaScript 汉字 转 拼音插件 压缩格式插件 web前端
简单轻巧(2kb缩小和压缩)javascript插件,实现当你滚动时创建流畅和漂亮的动画! 利用最直观的互动的力量,让您的网站活跃起来!
js css eclipse压缩插件,安装过后选中需要压缩的文件的上级文件夹,点击compress javascript,就能将压缩的文件倒出来
/*实现客户端不同域页面间Javascript相互调用(异步)的静态类--虫洞插件0.1版*/ feature: 1)纯前台插件,不需要后台配置,FLASH PLAYER版本要求在10.0以上. 2)本插件是基于同一台电脑上的FLASH之间能进行...
Prism 是一个轻量级并且简单易用的 JavaScript 类库,minified 和 gzipped 压缩后只有 1.5kb 大小,即使添加语言定义代码,最大也不会超过 2kb,是目前最小的代码高亮 Javascript 类库。 Prism 使用非常简单,只需...
图片压缩插件min.js文件image-compressor.min.js
纯原生js的移动端图片压缩上传插件,不依赖任何库 ##用法 在html页面中引入input标签,通过自定义属性data-LUploader绑定点击触发的标签id
该软件是一款由java语言开发的专门用来压缩js的工具,压缩效果极佳,下载后里面包含原件和解压后的文件,以及个人搜索到的相关的使用指南网址。
自动压缩图片限制格式大小显示缩略图兼容GB2312的JS插件
安装好后, 下载此压缩文件插件包。 解压后, 放在 安装路径下的packages目录下面即可. (比如----C:\Users\Administrator\AppData\Roaming\Sublime Text 3\Packages) Note:在sublime3 里面 直接下载安装,经常...
说明: 这是一个bash脚本,需要保存为.sh文件,例如build.sh。 ...在大型项目中,你可能会使用构建工具(如Webpack、Rollup)来自动化构建过程,并配置相应的加载器、插件等来满足项目的具体需求。
Sketch Image Compressor:Sketch一个插件用于压缩你的bitmap资源, 让文件大小减到最少
Turf的压缩用JavaScript编写的模块化GIS地理空间引擎,用于空间分析的JavaScript库。它包括传统的空间操作,用于创建GeoJSON数据的辅助函数,以及数据分类、空间计算和统计工具。Turf可以作为客户端插件添加到您的...
B/S应用系统的报表打印一直以来都是一个难题,以前常规的...本打印系统不需要在浏览器安装任何插件,只需通过JavaScript即可实现报表精确打印以及打印过程免人工介入。 压缩文件中附Odoo(一个开源ERP系统)8调用例子。
yuicompressor-maven-plugin, 用于压缩 (Minify/Ofuscate/Aggregate) Javascript文件和使用 YUI 压缩器的CSS文件的Maven 插件 [[Flattr this git repo] ( http://api.flattr.com/button/flattr-badge-large.png)]...
一个JavaScript Function Outliner插件 第四版本 支持内嵌javascript,且可以对javascript进行压缩
基于jq的分页插件,简单易用。 $(function () { $("#page").initPage({ maxPage: 5, //最大显示数 pageCount: 7, //总页数 ...插件代码未压缩,可自行扩展。有其他两种分页风格,查看test.html可知。