编译bootstrap.less时出错。我错过了什么

时间:2015-01-13 11:13:50

标签: twitter-bootstrap less

每当我尝试编译自己的.less文件时,都会收到以下错误:

SyntaxError: variable @height, visibility is undefined in {web root}/resources/less/bootstrap/component-animations.less on line 31, column 3:
30   overflow: hidden;
31   .transition-property(~"height, visibility");
32   .transition-duration(.35s);

我在NetBeans中使用Less编译器,因此我不会编写所有less命令,但这是正在执行的命令:

"/bin/bash" "-lc" "\"/usr/local/bin/lessc\" \"--source-map\" \"--source-map-rootpath=../less\" \"--source-map-url=extraStyle.css.map\" \"--clean-css\" \"{web root}/resources/less/extraStyle.less\" \"{web root}/resources/css/extraStyle.css\""

在此文件中出现错误:

//
// Component animations
// --------------------------------------------------

// Heads up!
//
// We don't use the `.opacity()` mixin here since it causes a bug with text
// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.

.fade {
  opacity: 0;
  .transition(opacity .15s linear);
  &.in {
    opacity: 1;
  }
}

.collapse {
  display: none;
  visibility: hidden;

  &.in      { display: block; visibility: visible; }
  tr&.in    { display: table-row; }
  tbody&.in { display: table-row-group; }
}

.collapsing {
  position: relative;
  height: 0;
  overflow: hidden;
  .transition-property(~"height, visibility");
  .transition-duration(.35s);
  .transition-timing-function(ease);
}

我无法找到有关此问题的任何信息。 有人可以帮我这个吗?

2 个答案:

答案 0 :(得分:1)

Bootstrap的.transition-property() mixin已在less / mixins / vendor-refixes.less

中定义

据我所知,您只能在@@transition; mixin中使用@transition;代替.transition-property()时重现此错误。官方BS源代码不包含此类错误。你可以在extraStyle.less中定义一个包含.transition-property()的{​​{1}} mixin吗?请注意Less编译器编译所有匹配的mixins。

要编写代码,尝试编译将编译类似:

@@transition;

输出:

.mixin(@list) {
property: @list;
p2: @list;
}

.selector {
.mixin(~"1 2");
}

此语法也适用于Less。

的早期版本

注意,如上所述,当我更改mixin时,如下所示:

.selector {
  property: 1 2;
  p2: 1 2;
}

以上结果为.mixin(@list) { property: @@list; p2: @list; }

答案 1 :(得分:0)

我终于得出结论,我有两个具有相同名称但具有不同变量方法的mixin。 我没注意到它,因为第二个mixin在另一个.less文件(mixin库)中。 将文件从导入中排除后,一切正常。

目前我使用Lessc 2.2.0(最新的npm) 所以也许是版本2.2.1的想法,检查双混合(或只有名称)

无论如何,谢谢你的时间!!!