从命令行向jade模板传递变量

11

我计划使用jade模板来根据开发或生产环境生成不同的HTML。目前,我没有计划在Node中编写代码。在这种情况下,是否可以从命令行调用jade并传递变量?如果可以,应该如何操作?

如果index.jade是这样的:

!!! 5
html
  head
    title my jade template
  body
    h1 Hello #{name}
我希望您能够从命令行调用它并传递名称的值。 谢谢。
1个回答

14

您需要在Jade CLI中使用选项-O/--obj。它接受两种类型的值:

  • 序列化的JSON
  • 指向JSON文件的路径(这将优先考虑)

例如:

jade -O myfile.json template.jade
或者
jade --obj '{ "cache": true }' template.jade

6
文档说明了"-obj/-O"用于传递一个选项对象,但选项对象中没有对局部变量的引用。我漏掉了什么? - cdaringe
哇,这个可以用,但是当我尝试编译多个模板时它就不起作用了。 - Costa Michailidis
这对我有用。我出现了一个小故障,因为我使用的json文件从数组级别开始,没有带名称,而且因为你没有“require-ing”它,在pug文件中它没有名称,所以我放置了一个顶层变量,并在其中放置了我的数组。给其他人提供参考。 - Costa Michailidis
@cdaringe 我和你有同样的问题。结果发现所有的 render* 函数都对 options 参数有这样的说明:“一个选项对象,也用作本地对象”。 - geoffliu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接