다음과 같은 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"
}
}