我还没有找到一种方法来使它完全自动化。我也不知道您是否需要此功能以减少@import
请求或简单地减少最终 CSS 以不加载它不需要的项目。
如果您不需要它完全自动化,并且您只是想减少生成的 CSS,并且您没有太多想要执行此操作的类,那么您可以在styles.less
文件中执行以下操作。
//have at the top of the file some variables set to 0 or 1 if the class
//is present or absent in that file
@usesClass-infobox: 0;
//set up a mixin to load it if NOT in the file
.setClass-infobox(@set) when (@set = 0) {
@import 'infobox.less';
}
//a default mixin to do nothing otherwise
.setClass-infobox(@set) {}
//call the mixin
.setClass-infobox(@usesClass-infobox);
当然,这并不能真正帮助自动化流程。毕竟,如果您知道文件.infobox
中没有styles.less
,那么您只需添加@import
无论如何,无需任何额外的 mixin 来检查。这给出的唯一真正价值是它设置了一个变量部分,基本上通知编码器“嘿,如果你不在这里包含它,可以为这个功能加载一些模块;所以告诉我,你是否包含它?”
同样,我不确定这是否完全解决了您的目标。我提供它是因为它在某些情况下可能对某些人有用。