2015-11-26 109 views
1

我不确定这是否可能在一行中,但我想运行yaml2json并在CLI中将结果json传递给jade -O选项。如何在一个npm运行脚本中将命令的结果传递给另一个命令的选项?

我知道如果我编写json文件并在-O选项中指定输出文件路径,它可以工作。但我宁愿不写一些临时文件,如果没有它可以完成。

所以此工程

{ 
    "scripts": { 
    "jade": "yaml2json src/data/site.yaml > temp.json && jade src/jade/pages --out dist -O temp.json", 
    } 
} 

尽管如此,这并不。

{ 
    "scripts": { 
    "jade": "jade src/jade/pages --out dist -O yaml2json src/data/site.yaml" 
    } 
} 

任何帮助或见解,将不胜感激。

回答

1

您是否尝试过使用反引号(坟墓)?

{ 
    "scripts": { 
    "jade": "jade src/jade/pages --out dist -O \"`yaml2json src/data/site.yaml`\"" 
    } 
} 

或者你也可以事后删除临时文件,如果它是挥之不去的(仅用于Linux/OSX):

{ 
    "scripts": { 
    "jade": "yaml2json src/data/site.yaml > temp.json && jade src/jade/pages --out dist -O temp.json && rm temp.json", 
    } 
} 
+0

谢谢申安。 Back-tick解决了它!我必须逃避这个论点,所以它是这样的:'“jade”:“jade src/jade/pages --out dist -O \”'yaml2json src/data/site.yaml' \“”' – Gen

+0

@Gen your评论示例格式很奇怪(可能是因为它使用反引号)。我已经更新了我对你的意思的回答。您能否确认我已正确应用转义引号,以便其他人得到答案的帮助。干杯。 – shennan

+0

是的,更新的答案完美无缺!感谢更新。 – Gen

相关问题