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+。
版权和许可
版权所有2011-2019 Andrémalo或其许可人(如适用)。
整个包(除了bench/目录中的文件)是 在apache许可2.0版下发布。你可以在 分发或联机的根目录: <;http://www.apache.org/licenses/LICENSE-2.0>;。
错误
当然没有虫子。;-) 但是如果你已经找到一个或者知道如何改进rjsmin,请放心 在github上发送请求 或向<;rjsmin-bugs@perlig.de>;发送邮件。