我的less文件取决于许多变量,例如:

@fontRegular:       "AvenirNextCondensed-Regular";


类使用这些变量,如下所示:

.thisClass {
   font-family: @fontRegular;
}


如您所料,我需要即时重新设定主题。

主题本身重新定义了这些变量,如下所示:

@fontRegular:       "HelveticaNeue";


如何减少重新解析所有内容的需求(我的意思是减少文件数量),以及如何首先更改变量?

最佳答案

只需从您的JavaScript中调用更少的代码(在这种情况下,它是从我的控制器中调用),如下所示:

    less.modifyVars(
        $scope.config.fontStyleHelveticaNeue? {
            '@fontRegular':     "HelveticaNeue",
            '@fontUltraLight':  "HelveticaNeue-UltraLight",
            '@fontDemiBold':    "HelveticaNeue-CondensedBold"
        }
        : {
            '@fontRegular':     "AvenirNextCondensed-Regular",
            '@fontUltraLight':  "AvenirNextCondensed-UltraLight",
            '@fontDemiBold':    "AvenirNextCondensed-DemiBold"
        }
    );


在上面的示例中,所有@前缀单词都是我要更新的较少变量(实际上,其中有两个设置)。
Less会自动重建所有CSS。

09-25 20:06