Tengo un archivo package.json que se ve así:
{
"name": "service",
"version": "1.0.0",
"private": true,
"description": "my service",
"license": "none",
"scripts": {
"build": "tsc"
},
"dependencies": {
"@mycompany/mypackage": "1.1.1"
}
}
Quiero actualizar la versión @mycompany/mypackage a "1.2.1". Encontré artículos comoesteyestesugiriendo jq.
Cuando ejecuto mi comando jq jq -r '"dependencies.@mycompany/mypackage" |= "1.2.1"' package.json
, aparece este error:jq: error (at temp.json:13): Invalid path expression with result "dependencies.@mycompany/m...
Por lo que puedo decir, la ruta es correcta cuando uséjq jugar.
¿Alguien tiene alguna sugerencia sobre lo que está mal?
Respuesta1
Estás bastante cerca. Es necesario citar la @mycompany/mypackage
clave, porque tanto @
y /
son caracteres especiales, pero debe citarse por separado, no como parte de todo el filtro. También necesita un enlace .
para consultar el objeto raíz. Esto debería 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"
}
}