有没有像Ruby的Juicer / Sprockets / bundle_fu这样的python库/包?

时间:2010-08-03 17:24:11

标签: python

寻找一个处理缩小和合并JS \ CSS文件的python库......

3 个答案:

答案 0 :(得分:5)

正如anurag所说,Django用户可以使用django-compress

如果您使用的是Pylons或TurboGears 2.x,则有两种实时选项:

  • MinificationWebHelpers(CSS / JS的实时缩小助手,支持使用Beaker缓存输出)
  • Minimatic(MinificationWebHelpers的一个分支。有些用户发誓,但根据MinificationWebHelpers的作者,开发人员不愿意与上游合作以合并更改)

据我所知,Django和Pylons的实时选项只能进行缩小和连接。他们不解析Javascript来实现任何类型的import / include指令。

如果您更喜欢批处理选项,我想不出任何用Python编写的内容,但这些是我见过其他Python开发人员使用的选项:

  • 编写一个运行像YUI Compressor(Java)或jsmin.py这样的低级工具的Python或shell脚本,并执行它不会为您执行的任何连接。 (我的一个项目就是这样做的。它没有给你import / include指令,但它确实以最小的依赖性完成了工作。)
  • RequireJS Optimize(JS / CSS捆绑的缩小和导入管理工具。用Java编写。)
  • Juicer使用了with RequireJS(需要Ruby并且除了RequireJS调用之外还使用JavaDoc样式的导入声明,但是使Java依赖(对于YUI Compressor)可选。)
  • Ender.jsJam(均以Node.js编写)

如果纯Python解决方案非常重要,我的建议是使用实时选项(使用paster --reload之类的内容更容易开发)或者为setup.py或{{3}编写命令使用pasterjsmin.py进行繁重的工作。

注意:由于缺少文档,setup.py链接指向我的一篇博文。

这个SO答案也可能有用: cssmin

答案 1 :(得分:3)

如果您使用的是Django,则可以使用django-compress

答案 2 :(得分:0)

检查这个简单的python脚本。

http://github.com/hkasera/minify

它也缩小了js以及css文件。它甚至存储详细的日志文件,说明过程中的错误和警告。

希望它有所帮助!