Javascript(ES5)采矿

crimp的Python项目详细描述


卷曲

完全用python编写的javascript minifier命令行实用程序;使用 ^{tt1}$作为底层库。

https://travis-ci.org/calmjs/crimp.svg?branch=1.0.1https://ci.appveyor.com/api/projects/status/nmtjoh4mavbilgvo/branch/1.0.1?svg=truehttps://coveralls.io/repos/github/calmjs/crimp/badge.svg?branch=1.0.1

简介

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实现具有非常高的开销性能成本 用于函数调用。这种方法的优点是最大。 可以实现灵活性(由于易于解析) 可以设置工作流),但缺点显而易见。

更改日志

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日

初次发布。

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

推荐PyPI第三方库


热门话题
java使用唯一的按钮标签单击按钮   代码生成如何使用Java codeModel为数组的特定索引赋值   java如何批量执行Camel SQL插入   java iText 7将ltv添加到现有签名   内存管理Java应用程序突然停止几天后(810)   带MySQL的java注册表单JavaFX在intellij中失败   如何使用eclipse为windows azure java项目启用远程调试   一种通用的java输入输出设计模式   java Android XML(RSS)忽略引号(“”)   java帮助:安卓中的8 X 10 2维按钮数组   java启动Android项目   JWrapper构建java应用程序   java如何在Android应用程序中设置基于日期/时间的默认页面加载?   java循环程序在完成后返回到起点   java Hibernate:更好的整体类还是多类映射?   回溯数独解算器的递归问题[Java]   java查找类用法   java如何在SpringWebFlow中将多个模型绑定到一个视图?