我想删除所有已恢复的npm shrinwrap json文件。这在其他机器上运行npm install时会出现问题。
"cssstyle": {
"version": "0.2.37",
"from": "cssstyle@>=0.2.29 <0.3.0",
"resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz"
},
"dashdash": {
"version": "1.14.0",
"from": "dashdash@>=1.12.0 <2.0.0",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.0.tgz",
"dependencies": {
"assert-plus": {
"version": "1.0.0",
"from": "assert-plus@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
}
}
},
"debug": {
"version": "2.2.0",
"from": "debug@>=2.2.0 <3.0.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz"
}
如何从所有文件中删除已解析的密钥
我使用的模式:
jq 'del(.resolved)' file.json
答案 0 :(得分:2)
在我看来,解决此类问题的最简单方法是使用walk/1
:
walk(if type == "object" and has("resolved") then del(.resolved) else . end)
如果你的jq没有walk/1
(在jq 1.5发布之后只包含在内置中),那么只需在上面一行之前添加它的定义(在Web上很容易获得),或者可能包括它在你的〜/ .jq文件中。