在编译之前可以将许多.less合并到一个吗?

时间:2013-11-14 21:01:12

标签: symfony less assetic

我在Symfony2中使用LESS和Assetic资产管理,而作为过滤器使用lessc。无论是.css:

filters:
    cssrewrite: ~
    less:
        node: /usr/bin/node
        node_paths: [/usr/lib/node_modules]

我正在使用Twitter Bootstrap构建一个应用程序,并且在每个.less文件中,我想使用Bootstrap vars / classes为应用程序的特定模块创建自己的自定义定义。

所以我有,例如:

{% stylesheets filter="cssrewrite, less" output="css/less_compiled.css"
    'bundles/mopabootstrap/bootstrap/less/bootstrap.less'
    'bundles/mybundle/less/module1.less'
    'bundles/mybundle/less/module2.less'

%}<link href="{{ asset_url }}" rel="stylesheet">{% endstylesheets %}

现在,如果我想在module1.less和module2.less中使用Bootstrap的变量和类,我必须将@import [bootstrap_less_file]添加到每个模块文件中。它不是很有弹性,它导致我在每个文件中重复了引导程序定义。

我知道我可以创建一个.less“index”文件,它会导入所有需要的文件,然后编译它,但imho它不是弹性/ symfony2 / bundles方法,因为那时我松散的商品,这是资产给了我。

[编辑:] 我想知道是否有任何解决方案可以合并{%stylesheet%}部分中的所有文件,然后将其发送到较少的过滤器/编译器。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

如果您正在运行LESS 1.5

LESS的最新版本允许您仅作为参考进行导入。所以这在使用bootstrap的较少文件中......

@import (reference) bootstrap.less;

...将使其可用作mixins等,但不会将代码编译为css(避免代码重复)。