5

npm shrinwrap json ファイルから resloved をすべて削除したいと思います。これは、他のマシンで 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
4

1 に答える 1

6

私の意見では、この種の問題に対する最も簡単なアプローチは、次を使用することwalk/1です。

walk(if type == "object" and has("resolved") then del(.resolved) else . end)

jq にwalk/1(jq 1.5 のリリース後に組み込みとしてのみ含まれていた) がない場合は、上記の行の前にその定義 (Web で簡単に入手可能) を追加するか、~/.jq ファイルに含めることができます。 .

于 2016-11-01T14:42:59.437 に答える