对包含在bowerstatic中的JS和CSS文件进行压缩和打包。
项目描述
gocept.recipe.bowerstaticbundler
通过bowerstatic捆绑和压缩包含的组件。
此配方导入您在recipes配置中指定的bowerstatic组件(请参阅下面的详细信息)。然后检索您的本地组件,计算导入顺序,并压缩和捆绑JS和CSS文件。这些捆绑包将保存到您的bower_components文件夹(或您指定的任何文件夹)中,作为名为bowerstatic_bundle的新组件。
在您的应用程序中,您可以通过包含辅助函数在捆绑版和非捆绑版之间切换。
def bower_include(environ, name): if not os.environ.get('BOWERSTATIC_DEBUG'): name = 'bowerstatic_bundle' include = components.includer(environ) include(name)
在您的视图中,您通常获取包含器并包含您的库,现在您调用
bower_include(self.request.environ, '<you_library_name>')
本软件包使用 rcssmin 和 rjsmin 来压缩CSS和JS文件。
配置
以下是 bowerstaticbundler 的示例配置
[buildout] parts += bundle [bundle] recipe = gocept.recipe.bowerstaticbundler eggs = mypackage myotherpackage modules = mypackage.browser.resource myotherpackage.browser.resource bower = mypackage.bower target_dir = ${config:bower_components} environment = bundle-config [bundle-config] BOWER_COMPONENTS_DIR = ${config:bower_components}
您需要通过 eggs 和 modules 选项指定您本地组件的位置。Eggs用于导入您的模块,其中包含组件,而modules指定了直接导入它们的路径。这是必需的,因为bower在导入时计算组件和资源,因此我们需要在构建步骤中触发它们。
您还必须通过 bower 选项提供您bower单例的位置。
target_dir 指定捆绑组件将被放置的目录。建议将其指向您的 bower_components 文件夹,其中包含您的bower包,因为 bowerstatic 还必须导入捆绑包才能将其包含到您的应用程序中。
使用 environment 选项,您可以指定环境变量。在上面的示例中,我们指定了一个名为 BOWER_COMPONENTS_DIR 的环境变量,这是bower在环境中查找以获取已安装bower包的变量。这可能在您的设置中有所不同。
变更
1.2.2 (2015-01-30)
支持多个本地组件。
1.2.1 (2015-01-14)
还将图像复制到捆绑目录,这些图像将作为fav图标显示。
通过添加换行和缩进使生成的 .bower.json 文件更易于阅读。
在复制资源时,为每个包创建一个单独的目录以减少名称冲突的可能性。
1.2.0 (2015-01-13)
将所有模板文件复制到捆绑目录,而不是构建一个巨大的 bundle.pt 模板。
1.1.1 (2015-01-12)
如果 bowerstatic_bundle 目录缺失,则防止更新时出错。
1.1 (2015-01-12)
在CSS文件中(图像、字体等)将额外的资源引用符号链接到捆绑包,并将压缩后的CSS指向这些符号链接。
1.0.2 (2015-01-08)
在从eggs收集资源时修复了 pkg_resources 工作集的处理。
确保在没有要捆绑的资源时,配方不会中断。
1.0.1 (2014-09-20)
在 setup.py 中修复了主页URL。
1.0.0 (2014-09-20)
首次发布。