Less 导入一个韩元较少的文件';看不到@filename变量

Less 导入一个韩元较少的文件';看不到@filename变量,less,syntax-error,string-concatenation,Less,Syntax Error,String Concatenation,我正在尝试将.less文件加载到我的主主题中,这是我的文件结构: main.less themes/pink.less themes/yellow.less themes/blue.less 我正在使用此mixin检索所选主题: .theme(@filename){ @import 'themes/@{filename}.less'; } .theme('pink'); 它不起作用,我得到以下错误: SyntaxError: variable @filename is undefi

我正在尝试将
.less
文件加载到我的主主题中,这是我的文件结构:

main.less
themes/pink.less
themes/yellow.less
themes/blue.less
我正在使用此
mixin
检索所选主题:

.theme(@filename){
    @import 'themes/@{filename}.less';
}

.theme('pink');
它不起作用,我得到以下错误:

SyntaxError: variable @filename is undefined
.theme('pink');

我习惯于对背景图像执行相同的操作而不会出错,这是我错的地方?

不幸的是,Less.js会抛出您在导入
.Less
文件时描述的错误(导入
.css
文件时效果很好),如果您在mixin参数/属性中定义变量,但是,如果您直接在mixin(globaly)内部或外部定义变量,它就可以工作。例如,这应该起作用:

@filename: 'pink';

.theme(){
    @import 'themes/@{filename}.less';
}

.theme();
,而长期目标似乎是让您的版本也能正常工作,只是还没有完全实现^_^

但是,如果您只想根据变量加载主题,则可以不使用mixin。通过这样做:

@theme: 'pink';
@import 'themes/@{theme}.less';

不幸的是,您的评论中的链接似乎是“旧”的,因为如果您运行的是1.4版,它应该可以工作,假设您没有外部定义变量(即导入要在
@import
中使用的变量),也就是说(所有导入都开始,而不等待加载其他导入)。感谢您的信息,我试图避免那样,但现在一切都会好起来的!