我知道我可以使用标签或空格,但不能同时使用两者。但我找不到无效缩进的位置。试过不同的变化。但我没有成功。添加
后我得到了异常- if (error)
p= error
所以我的代码如下所示:
!!!
html
head
title= title
link(rel='stylesheet', href='/stylesheets/#{stylesheet}.css')
link(rel='stylesheet', href='/stylesheets/bootstrap.min.css')
body
.container
.row
.col-md-4
.col-md-4
.well
- if (error)
p= error
form(role='form',action='sessions', method='post')
.form-group
label(for='Email') Eposta Adresi
input#Email.form-control(type='email',name='user[email]',placeholder='E-posta adresi')
.form-group
label(for='Password') Şifre
input#Password.form-control(type='password',name='user[password]', placeholder='Şifre')
button.btn.btn-default(type='submit') Giriş
script(type='text/javascript', src='/javascripts/jquery-1.10.2.min.js')
script(type='text/javascript', src='/javascripts/bootstrap.min.js')
完全例外:
12| .well
13| - if (error)
> 14| p= error
15| form(role='form',action='sessions', method='post')
16| .form-group
17| label(for='Email') Eposta Adresi
Invalid indentation, you can use tabs or spaces but not both
at Object.Lexer.indent (C:\Nodejs\NodejsBlog\node_modules\jade\lib\lexer.js:691:15)
at Object.Lexer.next (C:\Nodejs\NodejsBlog\node_modules\jade\lib\lexer.js:789:15)
at Object.Lexer.lookahead (C:\Nodejs\NodejsBlog\node_modules\jade\lib\lexer.js:122:46)
at Object.Parser.lookahead (C:\Nodejs\NodejsBlog\node_modules\jade\lib\parser.js:116:23)
at Object.Parser.parseCode (C:\Nodejs\NodejsBlog\node_modules\jade\lib\parser.js:311:17)
at Object.Parser.parseExpr (C:\Nodejs\NodejsBlog\node_modules\jade\lib\parser.js:225:21)
at Object.Parser.block (C:\Nodejs\NodejsBlog\node_modules\jade\lib\parser.js:593:25)
at Object.Parser.tag (C:\Nodejs\NodejsBlog\node_modules\jade\lib\parser.js:722:26)
at Object.Parser.parseTag (C:\Nodejs\NodejsBlog\node_modules\jade\lib\parser.js:625:17)
at Object.Parser.parseExpr (C:\Nodejs\NodejsBlog\node_modules\jade\lib\parser.js:199:21)
需要建议。
答案 0 :(得分:8)
这是vim
向我展示:set list
:
▸ ▸ ▸ ▸ .col-md-4¬
▸ ▸ ▸ ▸ .col-md-4¬
▸ ▸ ▸ ▸ ▸ .well¬
▸ ▸ ▸ ▸ ▸ ▸ - if (error)¬
▸ ▸ ▸ ▸ ▸ ▸ p= error¬
▸ ▸ ▸ ▸ ▸ ▸ form(role='form',action='sessions', method='post')¬
(三角形是标签)
所以你要在违规行上混合标签和空格。
答案 1 :(得分:1)
您还可以使用Notepad++显示标签并将其更改为空格以更正缩进问题。
我有node / npm消息告诉我,我的jade引擎的Parser和Lexer不喜欢我的layout.jade代码,因为我从第8行开始使用空格和制表符的缩进不一致。并且Lexer和Parser对象抛出了该错误(分别在lexer.js和parser.js中)。所以我打开了问题文件 - 即layout.jade并更正了缩进。这是我在开头得到的npm错误信息:
<pre>
Error: C:\Users\tester_Arch_GitHub\loc8r2mvc\app_server\views\layout.jade:8
6| title= title
7| link(rel='stylesheet', href='/bootstrap/css/amelia.bootstrap.css')
> 8| link(rel='stylesheet', href='/stylesheets/style.css')
9| body
10| block content
11|
Invalid indentation, you can use tabs or spaces but not both
at Object.Lexer.indent (C:\Users\tester_Arch_GitHub\loc8r2mvc\node_modules\jade\lib\lexer.js:790:15)
at Object.Lexer.next (C:\Users\tester_Arch_GitHub\loc8r2mvc\node_modules\jade\lib\lexer.js:941:15)
at Object.Lexer.lookahead (C:\Users\tester_Arch_GitHub\loc8r2mvc\node_modules\jade\lib\lexer.js:113:46)
at Parser.lookahead (C:\Users\tester_Arch_GitHub\loc8r2mvc\node_modules\jade\lib\parser.js:102:23)
at Parser.peek (C:\Users\tester_Arch_GitHub\loc8r2mvc\node_modules\jade\lib\parser.js:79:17)
at Parser.tag (C:\Users\tester_Arch_GitHub\loc8r2mvc\node_modules\jade\lib\parser.js:773:22)
at Parser.parseTag (C:\Users\tester_Arch_GitHub\loc8r2mvc\node_modules\jade\lib\parser.js:759:17)
at Parser.parseExpr (C:\Users\tester_Arch_GitHub\loc8r2mvc\node_modules\jade\lib\parser.js:211:21)
at Parser.block (C:\Users\tester_Arch_GitHub\loc8r2mvc\node_modules\jade\lib\parser.js:729:25)
at Parser.tag (C:\Users\tester_Arch_GitHub\loc8r2mvc\node_modules\jade\lib\parser.js:838:24)
</pre>
所以我使用了我的普通旧编辑器Notepad ++:在Settings / Preferrences / Tab Setting / Javascript - &gt;下;选择空间替换。要么 。您只需使用箭头键将光标移动到每一行,只需检测选项卡并用空格替换它们!刷新URL。你会看到压痕问题消失了!
答案 2 :(得分:0)
您可以使用Sublime Text编辑器来解决此问题: