Javascript(ES5)采矿
crimp的Python项目详细描述
卷曲
完全用python编写的javascript minifier命令行实用程序;使用 ^{tt1}$作为底层库。
简介
crimp充当^{tt1}$的前端。
这两个库都源于^{tt4}$,一个包 为处理javascript代码提供了一个基于python的解决方案,它是 通常用于使用常用小型化器的情况, 通常用node.js编写,对于纯 python环境。但是,slimit没有为 年数。截至2017年,许多问题影响了 生成的代码仍然正确,calmjs.parsewas 派生自slimit,并且crimp被创建为 前一个。
安装
可以执行以下命令来获取最新的稳定 pypi中crimpwheel的版本,用于安装到当前 python环境。
$ pip install crimp
使用量
因为crimp是一个提供同名命令的包, 使用--help标志在安装后执行命令将 显示可用的选项。
$ crimp --help usage: crimp [input_file [input_file ...]] [-h] [-O <output_path>] [-m] [-p] [-s [<sourcemap_path>]] [--version] [-o] [--drop-semi] [--indent-width n] [--encoding <codec>] positional arguments: input_file path(s) to input file(s) optional arguments: -h, --help show this help message and exit -O <output_path>, --output-path <output_path> output file path -m, --mangle enable all basic mangling options -p, --pretty-print use pretty printer (omit for minify printer) -s [<sourcemap_path>], --source-map [<sourcemap_path>] enable source map; filename defaults to <output_path>.map, if identical to <output_path> it will be written inline as a data url --version show version information --indent-width n indentation width for pretty printer --encoding <codec> the encoding for file-based I/O; stdio relies on system locale basic mangling options: -o, --obfuscate obfuscate (mangle) names --drop-semi drop unneeded semicolons (minify printer only)
通常,程序将用一个或多个输入调用 文件(如果要组合成一个文件),并且可以选择 用-m标志来表示拥有所有的损坏是安全的 选项已启用。
请注意,所有输入文件必须在标志前面列出 这种对所有输入文件的强制分组可以减少不确定性 文件列表,假设有用于指定目标的标志 输出文件,将在没有提示的情况下被覆盖。
标准精美/小型打印
缩小一些文件:
$ crimp project.js -O project.min.js
要缩小某些文件,只需使用变量名模糊处理:
$ crimp project.js -m -O project.min.js
将缩小后的文件打印回标准输出:
$ crimp project.min.js -p
从stdin读取输入并写入文件。注意,如果 sigint(通常是ctrl-c或ctrl-break),输出文件将不会 开放写作。
$ crimp -O demo.js
源映射生成
对于源映射生成,请启用-s标志。
$ crimp project.js -O project.min.js -s
上面将把源映射文件写成project.min.js.map, 对它的引用(sourceMappingURL)也将是 作为注释附加到输出文件。指定特定的 位置,将名称作为参数传递。
$ crimp project.js -O project.min.js -s project.min.map
内联源映射(其中sourceMappingURL是 源映射的json序列化的base64编码)是 支持;可以通过为参数提供 用于输出文件的名称,如下所示:
$ crimp project.js -O project.min.js -s project.min.js
故障排除
分析中等大小的文件所需的时间是uglifyjs的10倍
这是由于calmjs.parse作为一组 产生最小输出的生成器函数,以及 标准python实现具有非常高的开销性能成本 用于函数调用。这种方法的优点是最大。 可以实现灵活性(由于易于解析) 可以设置工作流),但缺点显而易见。
法律
crimp软件包版权所有(c)2017奥克兰生物工程 奥克兰大学研究所。crimp包已获得许可 根据麻省理工学院的许可证(特别是外籍人士许可证)。
更改日志
1.0.1-2018年8月11日
- 将calmjs.parse的最低版本提升到1.1.1,其中
包括修复到:
- javascript源代码中的行继续符不应再中断 源映射行计数。[ calmjs.parse#16 ]
- 不会很久的r将某些不正确的未终止语句解析为 有效的javascript。[ calmjs.parse#18 ]
- 模糊处理的小型化符不应再截断某些右大括号 因为内部会计被更正了。[ calmjs.parse#19 ]
1.0.0-2017年9月26日
初次发布。