LESS @import的未声明变量。是什么造成的?有修复吗?

时间:2012-12-09 19:16:43

标签: visual-studio-2012 less

我有2个LESS文件。 Globals.less和Site.less。 Globals.less包含我的所有全局(go figure)变量以及CSS重置定义的导入。 Site.less包含正在使用的样式。

Globals.less:

//Imports
@import "CSSReset.less";

//Colors
@color-background: rgb(0, 0 , 0);

Site.less:

@import "Globals.less";

body {
    background: @color-background url('/Images/BackgroundTextureBody.png');
}

问题在于:在Visual Studio中,Site.less中的color-background带有下划线且错误为“Undeclared variable”,但LESS编译为CSS就好了,背景颜色正确设置为#000。这比任何事情都更令人烦恼,但我失去了Intellisense,我在错误列表中收到警告。我希望编辑按预期行事,并且能够在编辑Site.less时“看到”我在Globals.less中的声明。我做错了什么,这是一个错误,还是我的环境设置不正确?

3 个答案:

答案 0 :(得分:8)

要获得特定较少文件的智能感知,您可以像在js文件中获取智能感知一样添加引用路径。

示例

/// <reference path="Globals.less" />

@import "Globals.less";

body {
    background: @color-background url('/Images/BackgroundTextureBody.png');
}

答案 1 :(得分:1)

Visual Studio(或它的LESS解释器)似乎无法理解导入的Globals.less中变量的范围。

导入变量是正常和常见的事情,我建议它是Visual Studio设置中的错误或缺少功能。

答案 2 :(得分:1)

事实证明我使用的是旧版本的Web Essentials 2012.我应该检查的第一件事就是确保我的环境是最新的。将Web Essentials更新到最新版本更正了问题。