3

我在 Symfony2 中使用 LESS 和 Assetic 资产管理,并使用 lessc 作为过滤器将 .less 编译为 .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 “索引”文件,该文件将导入所有需要的文件,然后编译它,但恕我直言,这不是弹性/symfony2/bundles 方法,因为那时我失去了资产,这是资产给我的。

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

提前感谢您的帮助。

4

1 回答 1

3

如果您正在运行 LESS 1.5

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

@import (reference) bootstrap.less;

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

于 2013-11-15T00:00:52.827 回答