Jade неожиданный токен "indent"

Я пытаюсь запустить панель sparklesare-dashboard, которая является открытым исходным кодом. До сих пор у меня появилось много ошибок, потому что я не знаком с используемой в ней технологией. Итак, на этот раз, когда я запустил app.js из командной строки с помощью команды node, я получил эту ошибку.

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)

Ответ 1

У вас есть синтаксическая ошибка в коде, вы просто пропустили точку, и это вызывает другую ошибку, см. мой фиксированный пример в конце:

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

предложит ошибку Unexpected token "indent". Поскольку Джейд видит ваш $("#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>

Ответ 2

Правильный синтаксис:

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