Less 将较少的混合标记为可选

Less 将较少的混合标记为可选,less,less-mixins,Less,Less Mixins,Less让您喜欢这样: @import (optional) "foo.less"; 我有一个更少的文件,我可以选择导入,其中包含一个我在父文件中使用的mixin 如何将mixin的使用标记为可选,以便在导入的Less文件不存在时渲染不会失败 我已经尝试过了,计划在可选的较少导入的文件中设置@styleguide,但是无论@styleguide的值是多少,当它实现时,渲染都会失败。RegisterColor不存在 & when (@styleguide=true) { .reg

Less让您喜欢这样:

@import (optional) "foo.less";
我有一个更少的文件,我可以选择导入,其中包含一个我在父文件中使用的mixin

如何将mixin的使用标记为可选,以便在导入的Less文件不存在时渲染不会失败

我已经尝试过了,计划在可选的较少导入的文件中设置@styleguide,但是无论@styleguide的值是多少,当它实现时,渲染都会失败。RegisterColor不存在

& when (@styleguide=true) {
    .registerColors( ... arguments ... );
}

我需要解决方案来使用更少的2.5.3版本。

我找到了一种解决问题的方法,无需将mixin标记为可选

我重构了.RegisterColor以接受单个变量;在我的例子中,颜色变量名的列表。 我从调用传递给mixin的单独变量中提取颜色变量名。 我将对mixin的调用移动到可选的less文件中。 我将对mixin的调用放在一个保护中,以检查变量的存在:

@registeredColors: false;
& when not ( @registeredColors = false ) {
    .registerColors( @registeredColors )
}
这正是我想要的。如果可选的less文件不存在,则不会调用mixin,因为调用位于可选的mixin中。如果参数变量不存在,也不会调用mixin,这多亏了守护


总的来说,这种方法似乎简化了整个工作。

以较少的级联方式混合,因此您可以在非可选代码段的任意位置简单地定义空的混合。例如:

@进口可选部分; div{ .注册表颜色红色,红色2; } //非选择性材料 .RegisterColor。。。{} 。
当可选导入定义同名的mixin时,将调用两个mixin定义。

只需在使用它的文件中定义一个同名的空mixin即可。