突然在PUG CLI中得到 "syntaxerror: 在PUG CLI中出现 "语法错误":"Unexpected Token"。

问题描述 投票:1回答:1

我一直在用PUG做一个项目,但随着我对代码的最后一次修改,我现在从PUG CLI解析器中得到了 "Syntaxerror: unexpected token"。下面是相关的代码。

mixin hexagonLabelContainer(divClass,transKey,transValue,locked,buttonDetails)
    div(class=`hexagon-label-container${divClass ? ` ${divClass}` : ''}`)
        +trueHexagon(locked)
            block
        if !buttonDetails
            span(class='hexagon-label' data-i18n=transKey)
                != transValue||transKey;
        else
            button&attributes(buttonDetails)
                != buttonDetails.content || '';

以及确切的错误信息

Error: puggenefunk2090.pug:27:28
    25|                 if !buttonDetails
    26|                         span(class='hexagon-label' data-i18n=transKey)
  > 27|                                 != transValue||transKey;
-----------------------------------^
    28|                 else
    29|                         button&attributes(buttonDetails)
    30|                                 != buttonDetails.content || '';

Syntax Error: Unexpected token
FILE PATH INFO REDACTED

是代码引用的问题,因为如果我替换掉... != transvalue||transKey 和任何纯文本内容的跨度(如 |random text),它正确地解析了这一行,然后在下一行我使用未编码的代码时抛出了错误。这在我追踪的代码中一直持续着。

我甚至把它降到了一个最小的可复制状态,这实际上只是一个代码调用。

!= `random text done as a string for no good reason`;

但是,我看不出我有什么错别字。那么,我在这里犯了什么明显的错字呢?

pug
1个回答
0
投票

是分号的问题。未压缩的缓冲代码 Pug中的行不应该以分号结束。使用 Pug 编译器的快速测试,在 代码笔 可以确认这一点。

从您的 mixin 中删除分号应该可以解决这个问题。

mixin hexagonLabelContainer(divClass,transKey,transValue,locked,buttonDetails)
  div(class=`hexagon-label-container${divClass ? ` ${divClass}` : ''}`)
    +trueHexagon(locked)
      block
    if !buttonDetails
      span(class='hexagon-label' data-i18n=transKey)
        != transValue||transKey
    else
      button&attributes(buttonDetails)
        != buttonDetails.content || ''

同样,你的最小例子应该写成:

!= `random text done as a string for no good reason`
© www.soinside.com 2019 - 2024. All rights reserved.