Nodejs 用jade模板引擎,写了5层div就开始报错。you can use tabs or spaces but not both。前面4层都不报错。

Nodejs 用jade模板引擎,写了5层div就开始报错。you can use tabs or spaces but not both。前面4层都不报错。

QQ图片20140926171030.jpg

6 回复

Node.js 使用 Jade 模板引擎时遇到的缩进问题

问题描述:

在使用 Node.js 的 Jade 模板引擎时,我发现当我编写了 5 层嵌套的 div 元素时,Jade 开始报错。错误信息为:“you can use tabs or spaces but not both”。但当我只写前 4 层时,一切正常。

原因分析:

Jade(现在称为 Pug)对缩进非常敏感。它严格区分制表符(tab)和空格(space)。如果你在同一层级混合使用了这两种缩进方式,Jade 就会报错。

示例代码:

假设你有以下的 Jade 模板代码:

doctype html
html
  head
    title My Page
  body
    div
      div
        div
          div
            div
              p This is a paragraph inside the fifth div.

在这个例子中,如果在 div 的嵌套过程中混合使用了制表符和空格,就会导致错误。例如:

doctype html
html
  head
    title My Page
  body
    div
      div
        div
          div
            div
              p This is a paragraph inside the fifth div.

假设你在这个文件中,第 5 层 div 的缩进是用空格,而前面的都是用制表符,这将导致错误。

解决方法:

确保在同一层级的所有元素都使用相同类型的缩进。你可以选择全部使用制表符或者全部使用空格。例如:

doctype html
html
  head
    title My Page
  body
    div
      div
        div
          div
            div
              p This is a paragraph inside the fifth div.

在这个例子中,所有层级的 div 都使用了相同的缩进方式,这样就不会报错了。

总结:

Jade 对缩进非常敏感,确保在同一个层级中使用统一的缩进方式(制表符或空格),可以避免此类错误。


这错误提示不是已经很明显了吗。。。。

看到这个帖子我无语了… 另外我觉得jade的错误提示真不错,简单明了

sublime ,jade 插件 还不错 可以试试

在 sublime 里面可以设置成区分显示 tab 和 space,会比较容易发现这种问题

从问题描述来看,错误信息是 “you can use tabs or spaces but not both”,这通常意味着在使用 Jade(现在称为 Pug)模板引擎时,在同一层级下混合使用了制表符和空格进行缩进。

示例代码

假设你的模板文件中是这样的:

doctype html
html
  head
    title My Page
  body
    div#container
      div.level1
        div.level2
          div.level3
            div.level4
              div.level5

如果在这个层级结构中有混合使用了制表符和空格,就会导致报错。

解决方案

确保在同一层级下的所有缩进都是一致的,要么全部使用空格,要么全部使用制表符。例如,如果你选择使用空格,可以将上面的代码调整为:

doctype html
html
  head
    title My Page
  body
    div#container
      div.level1
        div.level2
          div.level3
            div.level4
              div.level5

每一行前面的缩进应该是连续的空格(比如 2 个或 4 个),而不是交替使用空格和制表符。

确认缩进

检查你的文本编辑器设置,确保在编辑过程中没有无意间混用了制表符和空格。大多数现代编辑器允许你配置自动转换制表符为指定数量的空格,这有助于避免此类问题。

如果问题仍然存在,请提供具体的错误信息和相关的代码片段,以便更精确地定位问题。

回到顶部