我一直在用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中的行不应该以分号结束。使用 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`