如何使用 Web Essentials 参数化 less 文件?

How to parameterize a less file using Web Essentials?

我有一个很大的遗留 CSS 文件,我想将其翻译成 LESS - 本身没什么大不了的,但它引用了图像的硬编码域。这在普通 css 中很痛苦,但我们在开发阶段设法以一种肮脏的方式处理了这个问题;我想我可以 "parameterize" 这个 url 使用 LESS 取决于我们的配置(开发、集成、生产)——比如:

#if DEBUG 
    @import 'debug'
#elseif INTEGRATION
    @import 'integration'
#elseif PROD
    @import 'production'
#endif

我想达到的目标有可能实现吗?

我正在使用 MVC .Net 5 和 Web Essentials 2013。

好吧,我实际上找到了一个解决方案:使用预构建事件将特定文件复制到主 .less 文件引用的文件中。

所以,在 main.less 中:

@import (optional) "_Variables"; ...some code...

在 _Variables.less 中,这是一种填充符,因此 main.less 会找到每个具有默认值的变量: @myVar = "someDefaultValue";

在 _VariablesDebug.less 中: @myVar = "debugValue";

在 _VariablesRelease.less 中: @myVar = "releaseValue";

依此类推,每个配置都有自己的名为 _Variables{Configuration}.less 的文件,每个配置都具有每个变量的正确值。

最后,在预构建事件中:

xcopy "$(ProjectDir)Path\To\Less\Files\_Variables$(ConfigurationName).less" "$(ProjectDir)Path\To\Less\Files\_Variables.less" /Y

在每次编译时,文件 _Variables.less 被配置所需的文件替换,并且 main.less 使用正确的值编译。