LESS中的嵌套mixins会引发错误

时间:2012-06-15 18:03:08

标签: nested arguments less mixins parse-error

我正在尝试使用.flexbox mixin接受参数@orient,该参数也会自动应用box-orient。与!important结合使用时,我遇到的错误也可以通过更窄的测试用例重现:

.foo() {
  .bar;
}

.bar {
  color: red;
}

body {
  .foo() !important;
}

这使LESS抛出错误(我在node.js中使用它):

C:\...\node_modules\less\lib\less\parser.js:385
                        throw new(LessError)(e, env);
                              ^
TypeError: Cannot call method 'charAt' of undefined

奇怪的是,使用.foo代替.foo()按预期工作:

.foo {
  .bar;
}

.bar {
  color: red;
}

body {
  .foo !important;
}

我做错了什么?

1 个答案:

答案 0 :(得分:1)

快速搜索引导我进入这个bug报告。这是一个众所周知的问题。

https://github.com/cloudhead/less.js/issues/740

说实话,我建议你尝试完成你想要做的其他事情。 less.js积压是在撰写本文时417问题很大。它很可能不会很快修复。

(是的,这是这个bug报告,你通过扩展.foo和.bar创建了一个嵌套规则)