通过终端编译时扩展jade错误

时间:2015-01-19 21:17:13

标签: bash pug extends

请帮我解决这个问题。我有2个文件:layout.jadeindex.jadeindex.jade看起来像:

extends ./layout.jade

另外,我有脚本compile.sh

PATH_PREFIX=/Users/path_to_project_folder
OBJ="\"{PATH_PREFIX:'$PATH_PREFIX'}\""
jade -P --obj $OBJ index.jade

它假设编译index.jade并给它JS对象{PATH_PREFIX: '/Users/path_to_project_folder'}。但它会出错:

/usr/local/lib/node_modules/jade/lib/runtime.js:231
      throw err;
            ^
Error: Jade:1
  > 1| extends ./layout.jade
    2| 
    3| block body
    4|   div(class="container-fluid")

the "filename" option is required to use "extends" with "relative" paths
    at Parser.resolvePath (/usr/local/lib/node_modules/jade/lib/parser.js:464:13)
    at Parser.parseExtends (/usr/local/lib/node_modules/jade/lib/parser.js:483:21)
    at Parser.parseExpr (/usr/local/lib/node_modules/jade/lib/parser.js:221:21)
    at Parser.parse (/usr/local/lib/node_modules/jade/lib/parser.js:122:25)
    at parse (/usr/local/lib/node_modules/jade/lib/index.js:102:21)
    at Object.exports.compile (/usr/local/lib/node_modules/jade/lib/index.js:203:16)
    at renderFile (/usr/local/lib/node_modules/jade/bin/jade.js:184:71)
    at Array.forEach (native)
    at Object.<anonymous> (/usr/local/lib/node_modules/jade/bin/jade.js:132:11)
    at Module._compile (module.js:456:26)

我做错了什么?

UPD:另外,如果我运行这个命令真的很奇怪:

jade -P --obj "{PATH_PREFIX:'/Users/path_to_project'}" index.jade 

它运作得很好。

3 个答案:

答案 0 :(得分:0)

错误意味着你无法告诉jade在哪里编译它必须是相对的文件所以错误是因为你正在尝试

jade < index.jade > index.html (as absolute)

在这种情况下,您最好尝试使用

jade < index.jade >

其余的都是历史。

或者可以使用http://gulpjs.com/尝试使用bash脚本进行自动化

答案 1 :(得分:0)

如果使用&#34;延长&#34;或&#34;包含&#34;,必须使用filename选项。

--filename "/absulute/path/to/your-file.jade"

答案 2 :(得分:0)

似乎&#34;文件名&#34;选项不再起作用,使用&#34; path&#34;相反,例如。

jade --path "/absolute/path/to/index.jade" < index.jade > index.html