请帮我解决这个问题。我有2个文件:layout.jade
,index.jade
。 index.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
它运作得很好。
答案 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