跳转到主要内容

资产打包库。合并、压缩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 (14.3 kB 查看哈希值)

源代码

由支持