“无法识别输入”错误,LESS保护mixin

时间:2014-07-04 22:12:50

标签: css less mixins css-preprocessor

在我的LESS项目中,我遇到的问题是让我的看守mixins处理我在另一个文件中声明的变量。这是我正在使用的代码:

_defaults.less (包含我的所有变量)

//------------------------------------//
//  @INCLUDE
//------------------------------------//
// Set whatever components you want included
// in your project to `true` and any components
// you do not wish to be included to `false`

// Base
@use-main:        true;

_main.less (在我的项目中只是一个随机的部分)

.main(@boolean) when (@boolean = true) {
    // Styles go here
}

// Execute mixin
.main(@use-main); 

style.less (导入我所有的部分内容)

//------------------------------------//
//  @IMPORTS  
//------------------------------------// 

// Base styles
@import "base/_main.less";

这就是我的项目的结构(大约20个部分,然后导入style.less文件)。

每当我尝试编译项目时,都会收到此错误:

  

无法识别的输入
      c:\ Users \ Keenan \ Documents \ GitHub \ concise.css-less \ less \ base_main.less line 1
      C:\用户\基南\文件\ GitHub的\ concise.css少\少\ concise.less

1 个答案:

答案 0 :(得分:3)

您粘贴的代码是正确的。实际上,您会被lessc错误消息误导。它指的是@main块。您遇到的问题似乎与您的项目Concise.css-less有关,更确切地说与this line有关。

@if @global-border-box == true {
// [...]
}

这不是if语句的正确语法。看问题: How to use if statements in LESS

您似乎正在将项目从手写笔转换为更少。我建议切割大块无法导入的文件,通过二分法找出较少无法识别的行。或者,您可以评论此处使用的顶级mixins警卫以包含此css或该部分css,并且对于错误报告而言则较少混淆。

例如,如果您评论文件_lists.less的第一行和最后一行:

//.lists(@boolean) when (@boolean = true) {
[...]
//.lists(@use-lists); 

lessc会在正确的行附近报告错误(实际上它在第111行>它不喜欢):

ParseError: Unrecognised input in concise.css-less/less/base/_lists.less on line 109, column 9:
108     .breakpoint(small) {
109         dl.dl-horizontal {
110             overflow: hidden;