У меня есть файл 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"
}
}