da/less-bundle

允许编译 less 文件的包

安装: 20

依赖者: 0

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

dev-master 2013-07-12 08:02 UTC

This package is auto-updated.

Last update: 2024-09-13 23:11:00 UTC


README

DaLessBundle 是一个 Symfony2 的包,允许将 less 文件编译成 css,无需安装其他任何包。

安装

将以下行添加到 composer.json 文件的 require 部分

"da/less-bundle": "dev-master"

运行 composer update 命令

php composer.phar update

将以下行添加到 AppKernel.php 文件(强烈建议在 dev 部分添加)

$bundles[] = new Da\LessBundle\DaLessBundle();

将以下行添加到 routing.yml 文件(强烈建议在 routing_dev.yml 文件中添加)

DaLessBundle:
    resource: "@DaLessBundle/Controller/"
    type:     annotation
    prefix:   /

更新资源

php app/console assets:install           # Windows
php app/console assets:install --symlink # Others

出于安全考虑,您需要在 config.yml 文件中指定可以访问 less 功能的一些角色

da_less:
	roles: [ROLE_ADMIN]

您可以通过以下方式绕过此安全设置(您不应在生产环境中这样做)

da_less:
	roles: [anonymous]

现在您应该能够使用 DaLessBundle。

访问编译接口

一个接口允许处理不同类型的编译

  • 通过表单进行编译
  • 通过配置文件进行编译

它可通过以下 URL 访问

/__da/less

通过表单进行编译

可以使用表单来配置和执行编译。

参数定义

可配置的 4 个参数是

  • 默认目录:这是您可以找到将在编译期间使用的 less 文件的目录的路径。

  • 覆盖目录:如果默认目录中有许多 less 文件,您可以定义一个指向覆盖目录的路径,其文件将覆盖默认目录中的文件。这对于您有一个配置 less 文件需要多个版本的情况非常有用。

  • 源文件:这是编译的 less 源文件名称。如果没有定义默认目录,您必须指定文件的路径。

  • 目标文件:这是 css 目标文件的名称和路径。

参数格式

出于明显的安全原因,无法访问磁盘上的任何文件。源文件必须位于以下格式的目录中

{bundle_root_dir}/Resources/private/less # for directories and less files.
{bundle_root_dir}/Resources/public/css # for css files.

当然,文件可以位于此目录的任何子目录中。

已实现了一种语法糖,以避免重复此路径的繁琐操作

BundleName:path/to/directory/or/file
  • BundleName 代表 Symfony 中的包名称(例如,此包的名称为 DaLessBundle)。
  • path/to/directory/or/file 是相对于上述定义的目录的目录或文件的路径。

对于默认和覆盖目录

MySuperBundle:themes/aqua
# equivalent to the directory /src/My/SuperBundle/Resources/private/less/themes/aqua
MySuperBundle:
# equivalent to the directory /src/My/SuperBundle/Resources/private/less

对于源和目标文件

MySuperBundle:themes/aqua/mystyle
# equivalent to the file /src/My/SuperBundle/Resources/private/less/themes/aqua/mystyle.less for a source.
# equivalent to the file /src/My/SuperBundle/Resources/public/css/themes/aqua/mystyle.css for a destination.

通过配置文件进行编译

可以使用配置文件来配置您想要经常执行的编译。

配置格式

配置文件

# /app/config/config.yml
da_less:
    compilation:
        bootstrap:
            default: "BootstrapBundle:"
            override: "MySuperBundle:bootstrap"
            source: bootstrap
            destination: "MySuperBundle:bootstrap"
        custom:
            default: "MySuperBundle:"
            override:
            source: custom
            destination: "MySuperBundle:custom"

在此示例中,bootstrap 和 custom 是编译的标识符。与通过表单进行的编译一样,可以使用简化的表示法。

在标识符引导编译的情况下,您将拥有位于 BootstrapBundle 的 /src/Resources/private/less 目录中的文件,这些文件将被 MySuperBundle 的 /src/Resources/private/less/bootstrap 目录中的文件覆盖。Bootstrap 是一个由 less 文件编译而成的 CSS 库,您可以通过更改变量.less 文件中包含的值来自定义它。您可以想象在 MySuperBundle 的 /src/Resources/private/less/bootstrap 目录中存在一个 variables.less 文件。编译的源文件是 bootstrap.less(默认目录和覆盖目录合并的结果),目标文件是 /src/Resources/public/css/bootstrap.css。

如果没有覆盖目录,可以简化代码。因此

# /app/config/config.yml
da_less:
    compilation:
        custom:
            default: "MySuperBundle:"
            override:
            source: custom
            destination: "MySuperBundle:custom"

等同于

# /app/config/config.yml
da_less:
    compilation:
        custom:
            source: "MySuperBundle:custom"
            destination: "MySuperBundle:custom"

配置编译执行

要执行配置编译,只需使用接口或以下 URL

/__da/less/compile/{compilation_id}

要执行所有配置编译,只需使用接口或以下 URL

/__da/less/compile/_all

文档

在组件的 Resources/doc 目录中提供了英文和法文文档。