Eu tenho um arquivo package.json parecido com este:
{
"name": "service",
"version": "1.0.0",
"private": true,
"description": "my service",
"license": "none",
"scripts": {
"build": "tsc"
},
"dependencies": {
"@mycompany/mypackage": "1.1.1"
}
}
Quero atualizar a versão @mycompany/mypackage para "1.2.1". Encontrei artigos comoesseeessesugerindo jq.
Quando executo meu comando jq jq -r '"dependencies.@mycompany/mypackage" |= "1.2.1"' package.json
, recebo este erro:jq: error (at temp.json:13): Invalid path expression with result "dependencies.@mycompany/m...
Pelo que posso dizer, o caminho está correto quando useijq jogar.
Alguém tem uma sugestão do que está errado?
Responder1
Você está bem perto. Você precisa citar a @mycompany/mypackage
chave, porque ambos @
e /
são caracteres especiais, mas você deve citá-la separadamente, não como parte de todo o filtro. Além disso, você precisa de um líder .
para consultar o objeto raiz. Isso deve funcionar:
$ 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"
}
}