Jade出现意外的标记 "indent"

13

我正在尝试运行一个开源项目sparkleshare-dashboard。到目前为止,由于我不熟悉其中使用的技术,所以遇到了许多错误。因此,当我使用node命令从命令提示符中运行app.js时,我遇到了这个错误。

Warning: missing space before text for line 20 of jade file "D:\Imports\sparkles
    hare-dashboard/views/createFirstUser.jade"
    Error: D:\Imports\sparkleshare-dashboard/views/createFirstUser.jade:21
        19|   script(type="text/javascript")
        20|     $("#login").focus(function()

 {
  > 21|       $("#loginlabel").fadeOut();
    22|     });
    23|     $("#login").blur(function() {
    24|       if ($("#login").val().length == 0) {

unexpected token "indent"
    at Parser.parseExpr (D:\Imports\sparkleshare-dashboard\node_modules\jade\lib
\parser.js:229:15)
    at Parser.block (D:\Imports\sparkleshare-dashboard\node_modules\jade\lib\par
ser.js:689:25)
    at Parser.tag (D:\Imports\sparkleshare-dashboard\node_modules\jade\lib\parse
r.js:806:26)
    at Parser.parseTag (D:\Imports\sparkleshare-dashboard\node_modules\jade\lib\
parser.js:719:17)
    at Parser.parseExpr (D:\Imports\sparkleshare-dashboard\node_modules\jade\lib
\parser.js:188:21)
    at Parser.block (D:\Imports\sparkleshare-dashboard\node_modules\jade\lib\par
ser.js:689:25)
    at Parser.tag (D:\Imports\sparkleshare-dashboard\node_modules\jade\lib\parse
r.js:806:26)
    at Parser.parseTag (D:\Imports\sparkleshare-dashboard\node_modules\jade\lib\
parser.js:719:17)
    at Parser.parseExpr (D:\Imports\sparkleshare-dashboard\node_modules\jade\lib
\parser.js:188:21)
    at Parser.parseExpr (D:\Imports\sparkleshare-dashboard\node_modules\jade\lib
\parser.js:227:21)
2个回答

16

你的代码存在语法错误,你只是错过了一个点号,这导致了另一个错误,在结尾处可以查看我的修复示例:

script(type="text/javascript")
    $("#login").focus(function(){
      $("#loginlabel").fadeOut();
    });

会提示一个Unexpected token "indent"错误。因为Jade将你的$("#loginlabel").fadeOut();视为另一行代码,并且在Jade中,这行代码的缩进是错误的。

通常,这些"indent"错误最终都指向了一个错误的缩进。

因此,要摆脱这个错误,只需在script标签末尾添加一个并清楚地说明后面跟着的是非Jade代码的部分,例如:

script(type="text/javascript").
    $("#login").focus(function() {
    $("#loginlabel").fadeOut();
    });

这个(看那个点)将会给你以下的HTML输出:

<script type="text/javascript">
  $("#login").focus(function() {
    $("#loginlabel").fadeOut();
  });
</script>

0

正确的语法是:

script.
  document.location = "https://google.com"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接