使用jq从package.json中提取有关依赖项的信息

时间:2017-04-27 13:18:54

标签: json node.js bash makefile jq

所以我试图在makefile中运行一个jq命令来链接一些依赖项,我不明白do-done里面的行是什么。如果只使用echo" $$ dep"我理解发生了什么,但是当使用完整的代码行时([-f" $$ dep / package.json"]&& echo" $$ dep&# 34 ;;)我好像迷路了。有谁有想法吗?感谢。

jq -r '.dependencies,.devDependencies|keys[]' $< | while read -r dep; do \
    [ -f "$$dep/package.json" ] && echo "$$dep"; \
done | (piping forward)

1 个答案:

答案 0 :(得分:0)

由于这是makefile,因此有两件事需要理解。首先,了解&#34; $$&#34;变量($$dep),请参阅此stackoverflow问题:

Makefile and use of $$

其次,要理解do ... done中的...,请记住这实际上等同于表格的条件shell:

if [ -f _ ] ; then echo _ ; fi

有关测试的详细信息,请参阅例如http://wiki.bash-hackers.org/commands/classictest