包含 pug 文件会导致错误,但 jade 工作正常
Including pug file causes error but jade works fine
运行 在这里遇到一个奇怪的问题。我有一个非常基本的 jade/pug 包括在这里:
extends base.pug
block vars
- var title = 'Home'
block body
header
include ./includes/header.pug
快速说明,仅使用 extends base(没有扩展名)是行不通的。但这包括给出以下错误:
TypeError: Cannot read property 'replace' of undefined
at before (/var/node/website/node_modules/pug-linker/index.js:104:48)
at walkAST (/var/node/website/node_modules/pug-walk/index.js:13:26)
at /var/node/website/node_modules/pug-walk/index.js:21:16
at Array.map (native)
at walkAST (/var/node/website/node_modules/pug-walk/index.js:20:29)
at walkAST (/var/node/website/node_modules/pug-walk/index.js:33:21)
at /var/node/website/node_modules/pug-walk/index.js:21:16
at Array.map (native)
at walkAST (/var/node/website/node_modules/pug-walk/index.js:20:29)
at /var/node/website/node_modules/pug-walk/index.js:21:16
at Array.map (native)
at walkAST (/var/node/website/node_modules/pug-walk/index.js:20:29)
at applyIncludes (/var/node/website/node_modules/pug-linker/index.js:102:10)
at link (/var/node/website/node_modules/pug-linker/index.js:21:9)
at compileBody (/var/node/website/node_modules/pug/lib/index.js:84:11)
at Object.exports.compile (/var/node/website/node_modules/pug/lib/index.js:164:16)
但将其更改为:
extends base.pug
block vars
- var title = 'Home'
block body
header
include ./includes/header.jade
工作得很好。 header.jade 和 header.pug 的内容完全一样所以我在这里有点困惑。一些帮助将不胜感激。
谢谢,
PS:搜索确实显示:https://github.com/pugjs/pug-linker/issues/13 - 似乎是一个错误,但不确定这是怎么回事。
看来哈巴狗还没有真正准备好迎接黄金时段!期待什么时候,但是用 jade 代替 pug 解决了这个问题,只需将所有内容重命名为 .jade
.
从 Jade 迁移到 Pug 的重大变化之一是您不能再插入变量。您过去可以(并鼓励)在另一个字符串中使用 #{something}
,但现在鼓励您使用常规 JavaScript 变量。
例如,这个
a(href="#{link}")
a(href='before#{link}after')
现在应该变成
a(href=link)
a(href=`before${link}after`) //(on Node.js/io.js ≥ 1.0.0)
a(href='before' + link + 'after') //(everywhere)
来源:跟踪 issue 重大更改。
运行 在这里遇到一个奇怪的问题。我有一个非常基本的 jade/pug 包括在这里:
extends base.pug
block vars
- var title = 'Home'
block body
header
include ./includes/header.pug
快速说明,仅使用 extends base(没有扩展名)是行不通的。但这包括给出以下错误:
TypeError: Cannot read property 'replace' of undefined
at before (/var/node/website/node_modules/pug-linker/index.js:104:48)
at walkAST (/var/node/website/node_modules/pug-walk/index.js:13:26)
at /var/node/website/node_modules/pug-walk/index.js:21:16
at Array.map (native)
at walkAST (/var/node/website/node_modules/pug-walk/index.js:20:29)
at walkAST (/var/node/website/node_modules/pug-walk/index.js:33:21)
at /var/node/website/node_modules/pug-walk/index.js:21:16
at Array.map (native)
at walkAST (/var/node/website/node_modules/pug-walk/index.js:20:29)
at /var/node/website/node_modules/pug-walk/index.js:21:16
at Array.map (native)
at walkAST (/var/node/website/node_modules/pug-walk/index.js:20:29)
at applyIncludes (/var/node/website/node_modules/pug-linker/index.js:102:10)
at link (/var/node/website/node_modules/pug-linker/index.js:21:9)
at compileBody (/var/node/website/node_modules/pug/lib/index.js:84:11)
at Object.exports.compile (/var/node/website/node_modules/pug/lib/index.js:164:16)
但将其更改为:
extends base.pug
block vars
- var title = 'Home'
block body
header
include ./includes/header.jade
工作得很好。 header.jade 和 header.pug 的内容完全一样所以我在这里有点困惑。一些帮助将不胜感激。
谢谢,
PS:搜索确实显示:https://github.com/pugjs/pug-linker/issues/13 - 似乎是一个错误,但不确定这是怎么回事。
看来哈巴狗还没有真正准备好迎接黄金时段!期待什么时候,但是用 jade 代替 pug 解决了这个问题,只需将所有内容重命名为 .jade
.
从 Jade 迁移到 Pug 的重大变化之一是您不能再插入变量。您过去可以(并鼓励)在另一个字符串中使用 #{something}
,但现在鼓励您使用常规 JavaScript 变量。
例如,这个
a(href="#{link}")
a(href='before#{link}after')
现在应该变成
a(href=link)
a(href=`before${link}after`) //(on Node.js/io.js ≥ 1.0.0)
a(href='before' + link + 'after') //(everywhere)
来源:跟踪 issue 重大更改。