notrix/compass-elephant-bundle

将 CompassElephant 集成到 Symfony2 中

安装数: 2,317

依赖者: 0

建议者: 0

安全性: 0

星标: 0

关注者: 2

分支: 3

类型:symfony-bundle

v0.1.0 2014-11-07 23:00 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:41:48 UTC


README

Build Status SensioLabsInsight

Total Downloads Monthly Downloads

一个用于在 Symfony2 项目中使用 CompassElephant 库的 Bundle

此 Bundle 在每次请求时扫描您的 compass 项目,并检查是否需要重新编译。它处理依赖关系,因此您可以使用 compass 的 @import精灵生成 等功能而不会出现问题。让 Symfony 监控 您的项目并忘掉它。

注意

此 Bundle 的版本 >= 0.1 不再使用本机检查器,因为 compass 从 1.x 版本开始不再支持。

staleness_checker 选项仍然可用于兼容性,但它被忽略。

安装

composer

使用 composer 在您的 symfony 项目根目录下输入即可安装

$ composer require cypresslab/compass-elephant-bundle:~1.0

注册 Bundle

在 dev 部分的 AppKernel.php 文件中注册 Bundle

app/AppKernel.php

<?php
if (in_array($this->getEnvironment(), array('dev', 'test'))) {
    // ...other bundles ...
    $bundles[] = new Cypress\CompassElephantBundle\CypressCompassElephantBundle();
}

配置

在您的配置文件中添加配置(针对 dev 环境)

app/config_dev.yml

cypress_compass_elephant:
    compass_projects:
        my-nice-project:
            path: %kernel.root_dir%/../src/Cypress/DemoBundle/Resources/public/compass

my-compass-project 是此示例的随机名称。选择您想要的名称

path 必须是一个现有目录。默认情况下,如果目录为空,CompassElephant 尝试初始化 compass 项目

对您的服务器 CPU 温柔一点:在生产环境中移除监听器,因为它不是必需的。您将提供静态 CSS 文件

app/config_prod.yml

cypress_compass_elephant:
    register_listener: false

重要

请记住,apache 用户需要 "sass" 文件夹、"stylesheet" 文件夹和 config.rb 文件的写入权限。如果您使用 compass 默认设置,则所有内容都将位于同一项目文件夹中。您可以给所有文件授权。但您也可以将样式表文件夹的位置更改为项目外。CompassElephant 解析配置文件并使用它,但请记住为 compass 配置文件中定义的文件夹设置正确的权限。

将样式表添加到您的模板中

assetic

{% stylesheets filter="yui_css"
    "@CypressDemoBundle/Resources/public/compass/stylesheets/screen.css" %}
    <link href="{{ asset_url }}" type="text/css" rel="stylesheet" />
{% endstylesheets %}

不使用 assetic

<link href="{{ asset('bundles/cypressdemo/compass/stylesheets/screen.css') }}" type="text/css" rel="stylesheet" />

享受吧!

完整的配置参考

cypress_compass_elephant:
    register_listener: true
    compass_binary_path: "/usr/local/bin/compass"
    compass_projects:
        blog:
            path: %kernel.root_dir%/../src/Cypress/BlogBundle/Resources/public/compass
            config_file: config.rb
            auto_init: true
            target: sass/screen.scss
  • register_listener 是否注册编译项目的监听器,如果需要,在每次请求时。在生产环境中 关闭此功能,因为您不需要在每次请求中监视您的 scss 文件...即使它只花费 5-10 毫秒(请确保在部署期间上传编译的 CSS 文件)
  • compass_binary_path 可以用于强制使用 "which compass" 获取的非默认二进制文件。
  • compass_projects 是您的 symfony 项目中所有 compass 项目的集合(可能一个用于应用程序)
  • config_file 是 compass 的配置文件名称。默认为 config.rb,标准文件。您可以使用此设置根据环境编译不同的样式表
  • auto_init 如果设置为 false,将禁用在空文件夹上的初始化功能。默认为 true
  • target 告诉 CompassElephant 编译单个文件,而不是整个 compass 项目。目标应该是 从 compass 项目的根目录的相对路径

命令行

有一个简单的命令可以编译所有 compass 项目。它在部署程序(capifony)中非常有用

例如,在 capifony 部署中,您可以触发此命令

$ ./app/console cypress:compass:compile -e=prod

工作原理

此 Bundle 注册一个事件监听器,在每次请求时检查在 config_dev.yml 文件中定义的项目是否处于 "清洁" 状态或需要重新编译。

如果项目不需要重新编译,它会给symfony增加一个非常小的开销。

阅读CompassElephant 的 README 以获取其他有用的信息。