Less 无法使用变量导入较少的文件

Less 无法使用变量导入较少的文件,less,gruntjs,Less,Gruntjs,不知道这是虫子还是我。我的main.less文件中有以下代码: @import 'settings.less'; @theme_branding: 'themes/blue/branding.less'; @import @theme_branding; 这会在我的终端上输出以下erorr,顺便说一下,我正在使用Grunt undefined_methodError: Object #<Object> has no method 'genCSS' in less/main.less

不知道这是虫子还是我。我的main.less文件中有以下代码:

@import 'settings.less';
@theme_branding: 'themes/blue/branding.less';
@import @theme_branding;
这会在我的终端上输出以下erorr,顺便说一下,我正在使用Grunt

undefined_methodError: Object #<Object> has no method 'genCSS' in less/main.less on line null, column 0:
我已经把一切都评论掉了。我只导入了设置文件,没有任何错误,其他的也都没有。就在我尝试@import@var_name时,它开始给我带来问题


我做错了吗?我尝试在less的网站上使用该代码,但仍然遇到问题。

好的,显然less不会将字符串保存为字符串。以下变量的显示方式如下所示:

@var = 'path/to/file';
@import @var
这相当于

@import path/to/file
根据css,它不是字符串。变量必须用引号括起来,如下所示:

@var = 'path/to/file';
@import = "@{var}";
这相当于:

@import 'path/to/file';
这在我的main.less文件中起作用,但在从设置文件导入这些变量时遇到了问题。我明白了为什么这对我不起作用。在我的设置文件中,我有如下内容:

@file: 'file';
@path: 'path/to/@{file}';
然后在我的main.less文件中

@import 'settings.less';
@import '@{path}';
但是,这给了我一个错误,因为我已经将变量@path封装在一个string-less中,现在将其作为一个完整的字符串读取,并且我不必第二次用引号将其括起来。这就是main.less的修复:

@import 'settings.less';
@import @path;

@导入@theme_品牌;不支持此语法。使用@import@{theme_branding};相反,请看。我刚刚发现了这个问题,但我遇到了另一个问题,我将更新我的问题。@seven Phase max我刚刚发现了问题的原因。我在下面回答了我自己的问题,让我知道它是否有意义,如果没有,我将重写它。这不是因为less不将字符串保存为字符串,而是因为less要求@import后面跟一个显式字符串,而不是变量或任何其他实体,无论变量本身是否包含字符串。较少的变量不是宏-它们不会立即扩展为独立于上下文的值。
@import 'settings.less';
@import @path;