2015-11-26 3 views
1

Я не уверен, возможно ли это в одной строке, но я хочу запустить yaml2json и передать результат json в jade -O в CLI.Как передать результат из команды в команду другой команды в одном сценарии запуска 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

Спасибо shenan. Back-tick решил это! Я должен был избежать аргумента, чтобы это было так: '' jade ":" jade src/jade/pages --out dist -O \ "' yaml2json src/data/site.yaml' \ "" ' – Gen

+0

@Gen your Пример комментария форматируется нечетным (вероятно, потому, что он использует обратные обратные). Я обновил свой ответ на то, что, как я подозреваю, имел в виду. Не могли бы вы убедиться, что я применил экранированные кавычки правильно, чтобы другим помог ответ. Приветствия. – shennan

+0

Да, обновленный ответ работает отлично! Спасибо за обновление. – Gen

Смежные вопросы