次のような package.json ファイルがあります:
{
"name": "service",
"version": "1.0.0",
"private": true,
"description": "my service",
"license": "none",
"scripts": {
"build": "tsc"
},
"dependencies": {
"@mycompany/mypackage": "1.1.1"
}
}
@mycompany/mypackageのバージョンを「1.2.1」に更新したいのですが、次のような記事を見つけました。これそしてこれjqを提案します。
jq コマンドを実行するとjq -r '"dependencies.@mycompany/mypackage" |= "1.2.1"' package.json
、次のエラーが発生します。jq: error (at temp.json:13): Invalid path expression with result "dependencies.@mycompany/m...
私が知る限り、私が使用したパスは正しいですjqプレイ。
何が問題なのか、誰かアドバイスをくれませんか?
答え1
かなり近いです。と は@mycompany/mypackage
どちらも特殊文字なので、キーを引用符で囲む必要がありますが、フィルター全体の一部としてではなく、個別に引用符で囲む必要があります。また、ルート オブジェクトを照会するには、先頭に が必要です。これで動作するはずです。@
/
.
$ jq -r '.dependencies."@mycompany/mypackage" |= "1.2.1"' package.json
{
"name": "service",
"version": "1.0.0",
"private": true,
"description": "my service",
"license": "none",
"scripts": {
"build": "tsc"
},
"dependencies": {
"@mycompany/mypackage": "1.2.1"
}
}