`
king_tt
  • 浏览: 2113292 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

VS插件推荐VS2008实现JavaScript自动压缩插件

 
阅读更多

本文为大家推荐一款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

标签:

分享到:
评论

相关推荐

    基于matlab实现的空间调制通信过程,包含信号调制、天线选择等发送过程,以及采用最大似然估计的检测过程 .rar

    基于matlab实现的空间调制通信过程,包含信号调制、天线选择等发送过程,以及采用最大似然估计的检测过程。.rar

    基于matlab的关于生猪养殖场经营管理的研究.docx

    本文档是课题研究的研究报告内含调研以及源码设计以及结果分析

    网络作为特征提取器-python源码.zip

    网络作为特征提取器-python源码.zip

    JavaScript-javaweb项目

    JavaScript-javaweb项目

    node-v12.11.0-linux-arm64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    仿Slideby触屏版html5响应式手机wap网站模板下载.zip

    触屏版自适应手机wap软件网站模板 触屏版自适应手机wap软件网站模板

    node-v10.18.1-linux-arm64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    IEC 60695-11-3:2012.pdf

    IEC 60695-11-3:2012.pdf

    2021-2010上市公司和讯网社会责任评级CSR-股东员工客户消费者环境社会责任分项评级

    上市公司和讯网社会责任评级CSR-股东责任员工责任客户消费者环境社会责任分项评级 得分(2010-2021年) "中国上市公司-和讯网社会责任数据"是 一份来自和讯网的数据集,它同步并收集了中国上市公司关于社会责任的相关信息。包括了 公司在股东责任、员工责任、供应商客户消费者权益责任、环境责任、社会责任中的表现和 成绩,以反映公司承担社会责任的程度。可以帮助大家了解公司在承担社会责任方面的具体 表现。这对于研究公司社会责任与公司业绩、公司声誉、公司风险等方面的关系具有参考意 义。 一、数据介绍 数据名称:上市公司和讯网社会责任评级CSR-股东责任员工责任 客户消费者环境社会责任分项评级得分 数据年份:2010-2021年 样本数量:每 年含2300-4600左右上市公司数据,总数据量40058条(注:因披露口径原因 ,2021年仅有430+上市公司数据) 数据格式:Excel面板数据 二、指标说 明 共计11个指标:股票名称、股票代码、年份、总得分、等级、股东责任、员工责任、 供应商客户和消费者权益责任、环境责任、社会责任、统计日期 三、部分excel数据 展示

    使用opencv进行人脸识别和对比-python源码.zip

    使用opencv进行人脸识别和对比-python源码.zip

    EmotionVGGnet情绪识别-python源码.zip

    EmotionVGGnet情绪识别-python源码.zip

    node-v12.1.0-linux-arm64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    MediaPipe人体姿势估计-python源码.zip

    MediaPipe人体姿势估计-python源码.zip

    构造并使用决策树进行分类-python源码.zip

    构造并使用决策树进行分类-python源码.zip

    <2024年5月软考高项极限冲刺>《1 考试简介》

    <2024年5月软考高项极限冲刺>《1 考试简介》

    【特效超多】仿德国开元旅游触屏版html5手机wap旅游网站模板下载.zip

    【特效超多】仿德国开元旅游触屏版html5手机wap旅游网站模板下载.zip

    JSP基于WEB网上论坛设计与实现(源代码+论文+开题报告+答辩PPT+外文翻译).zip

    JSP基于WEB网上论坛设计与实现(源代码+论文+开题报告+答辩PPT+外文翻译)

    仿YOKA服饰美容3G手机wap女性网站模板.zip

    触屏版自适应手机wap软件网站模板 触屏版自适应手机wap软件网站模板

    node-v12.0.0-linux-ppc64le.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v4.4.0.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

Global site tag (gtag.js) - Google Analytics