javascript小型化器

rjsmin的Python项目详细描述


rjsmin是一个用python编写的javascript小型化程序。

minifier基于jsmin.c by Douglas Crockford的语义。

该模块是以速度为目标的重新实现,因此可以用于 运行时(而不是在预处理步骤中)。通常它会产生 结果与原始的jsmin.c相同。它在以下方面有所不同:

  • 没有错误检测:未终止的字符串、正则表达式和注释 文本被视为常规的javascript代码,并因此被缩小。
  • 字符串和regex文本中的控制字符保持不变;它们 不转换为空格(也不转换为N)
  • 字符串和regex文本中不允许使用换行符,除非 用于字符串文本中的行连续(ECMA-5)。
  • “return/regex/”被正确识别。
  • 在正则表达式之前允许有更多字符。
  • 处理regex文本后的行结束符更加合理
  • “++”和“--”序列不折叠为“++”或“–”
  • 新台词!操作员被更明智地删除
  • 支持(不支持)模板文本(ECMA-6)
  • 可以选择保留以感叹号(!)开头的注释
  • rjsmin不处理流,只处理完整的字符串。(然而, 模块提供“streamy”接口)。

因为大部分逻辑都是由regex引擎处理的,所以速度要快得多。 甚至比baruch的原始python端口jsmin.c还要多。速度系数 根据输入和python版本的不同,在6到55之间变化 输入的压缩速度越快)。与 dave st.germain的speed重构python端口的性能提高较小 戏剧性,但仍在3到50之间(对于巨大的投入)。见 文档/基准文件了解详细信息。

rjsmin.c是rjsmin.py在c中的一个重新实现,它的速度更快。

支持的python版本是2.7和3.4+。

错误

当然没有虫子。;-) 但是如果你已经找到一个或者知道如何改进rjsmin,请放心 在github上发送请求 或向<;rjsmin-bugs@perlig.de>;发送邮件。

作者信息

andré“nd”malo<;nd perlig.de>; GPG:0x8103A37E

If God intended people to be naked, they would be born that way. – Oscar Wilde

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
方法为什么这两个java程序的输出不同   Mockito的java局限性   java如何立即更改背景?   java R无法安装xlsxjars、64位Windows,但正在尝试加载i386   在Java8中,如果在流之前集合为null,如何返回false?   来自RecyclerView适配器的java开始片段   字符串中的java字符串分隔符。分裂法   java检查线程是否中断?   java如何使用ESAPI解决资源注入(URL)问题   java如何在JAXB中解组时忽略元素的属性   BuilderPattern中的java逻辑   用JUnit测试Spring控制器   如何在java中使用regex/pattern删除标记   concurrentmodification我得到以下异常:“java.util.ConcurrentModificationException”   java如何与纯客户端Spring引导应用程序交互   Java函数中的递归返回字节数组   java getResourceAsStream()返回null。未加载属性文件   java无法自动连接activiti RuntimeService   java如何从AsyncTask更改或设置listview的子项?