资产打包库。合并、压缩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 |