资产打包库。合并、压缩CSS和JavaScript
项目描述
____ ____ _ __ __ __ __ ___ _____ / ___| _ \ / \ | \/ | \/ |_ _|_ _| | | | |_) | / _ \ | |\/| | |\/| || | | | | |___| _ < / ___ \| | | | | | || | | | \____|_| \_\/_/ \_\_| |_|_| |_|___| |_|
这是什么?
Crammit 是一个小工具,它提供了CSS和JavaScript的连接、压缩以及其他一些与资产管理相关的功能。如果您听说过Rails的Jammit,那么您可以将它视为我在Python中提供一个类似简单版本的尝试。
安装
$ [sudo] pip install crammit
如果您喜欢冒险,可以从git master分支安装最新版本
$ [sudo] pip install git+https://github.com/rspivak/crammit.git#egg=crammit
以开发模式安装
$ git clone https://github.com/rspivak/crammit.git $ python setup.py develop
对其进行测试
$ crammit -c assets.yaml
以下关于配置文件格式和参数的详细信息
配置
使用YAML文件配置Crammit。以下是一个示例配置文件。
output: assets # directory path relative to the current directory
fingerprint: true # add sha1 hash to the output file name
js_minifier: ... # optionally use a minifier other than slimit.
# expects a shell command that uses stdin/stdout.
js_minifier_options: # options dictionary to configure JS minifier
mangle: True
mangle_toplevel: True
javascript:
# 'common' is a bundle name, output file will have prefix 'common'
common:
- static/js/application.js
- static/js/vendor/*.js
utils:
# paths are relative to the current directory
- static/js/utils.js
css:
base:
# you can use Unix shell-style wildcards in file names
- static/css/*.css
output - 指定输出目录的相对路径,所有生成的文件都将放入该目录。
fingerprint - true或false。如果为true,则会在输出包文件名中添加SHA1哈希。哈希是在应用最小化和gzip压缩之前计算原始文件的连接文件。
每个包将输出3个文件。让我们看看javascript common 包的输出。
common-{sha1}.js - 连接的原始文件
common-{sha1}.min.js - 连接和最小化的文件
common-{sha1}.min.js.gz - 连接、最小化和gzip压缩的文件
信息文件
Crammit在{output}/assetsinfo.yaml中生成一个包信息文件,其中包含有关所有生成包的不同详细信息。信息包括(如果启用)包的SHA1指纹、输出文件名及其对应的字节大小。
raw - 连接的
min - 连接和最小化的
gz - 连接、最小化和gzip压缩的
css:
base:
files:
- static/css/test1.css
- static/css/test2.css
fingerprint: 71fe4cba05a1a51023c6af4c4abf9c47ab21e357
output:
gz: base-71fe4cba05a1a51023c6af4c4abf9c47ab21e357.min.css.gz
min: base-71fe4cba05a1a51023c6af4c4abf9c47ab21e357.min.css
raw: base-71fe4cba05a1a51023c6af4c4abf9c47ab21e357.css
size:
gz: 108
min: 235
raw: 277
javascript:
common:
files:
- static/js/application.js
- static/js/vendor/vendor1.js
- static/js/vendor/vendor2.js
fingerprint: 6493b619c73c49ce1f4dfe2c31d41902e98acaee
output:
gz: common-6493b619c73c49ce1f4dfe2c31d41902e98acaee.min.js.gz
min: common-6493b619c73c49ce1f4dfe2c31d41902e98acaee.min.js
raw: common-6493b619c73c49ce1f4dfe2c31d41902e98acaee.js
size:
gz: 56
min: 41
raw: 50
utils:
files:
- static/js/utils.js
fingerprint: c3ef63280b954d99e8b13fc11ea3031caee77f1a
output:
gz: utils-c3ef63280b954d99e8b13fc11ea3031caee77f1a.min.js.gz
min: utils-c3ef63280b954d99e8b13fc11ea3031caee77f1a.min.js
raw: utils-c3ef63280b954d99e8b13fc11ea3031caee77f1a.js
size:
gz: 42
min: 22
raw: 24
致谢
许可证
MIT许可(MIT)
变更历史
0.5 (2012-06-24)
使用js_minifier选项运行自定义JS压缩器
不压缩文件名中包含‘.min’的文件
为了安全起见,在合并的JS文件之间添加分号
0.4 (2012-03-17)
添加了js_minifier_options配置指令,该指令指定了传递给底层JS压缩器的命名参数,以配置它
0.3 (2012-03-12)
assetsinfo.yaml中的files选项,该选项列出用于创建捆绑包处理的文件
支持Python 2.6
0.2 (2012-02-12)
公开版本
项目详情
crammit-0.5.zip的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | b0042a4d67b24bde219f9cfba978060559a58d4270b454dca870ab70ac42b923 |
|
| MD5 | 941ff4627fc59042c761b6ff29e6bcf3 |
|
| BLAKE2b-256 | d60b6555be38feadacbfb3e9bb0c6bf0f67101ec2de87f3622298d3b5b8c89ac |