2015-11-26 92 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

相關問題