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