Отредактируйте файл package.json из командной строки
Я пытаюсь добавить или отредактировать переменную в моем package.json из оболочки script. Так что если у меня есть package.json вот так:
{
"name": "my-project",
"description": "Project by @DerZyklop",
"version": "0.0.0",
...
Мне нужна команда типа
npm config set foo bar
который добавляет новое поле, например
{
"name": "my-project",
"description": "Project by @DerZyklop",
"foo": "bar",
"version": "0.0.0",
...
... но, к сожалению, npm config set
просто редактирует ~/.npmrc
, а не мой package.json.
Ответы
Ответ 1
package.json
- это просто файл json
, поэтому вы можете использовать инструмент json
. Для его установки используйте:
npm install -g json
Затем вы можете редактировать файл на месте. Подробнее здесь.
Пример
$ cat package.json
{
"name": "my-project",
"description": "Project by @DerZyklop",
"version": "0.0.0"
}
$ json -I -f package.json -e 'this.foo="bar"'
json: updated "package.json" in-place
$ cat package.json
{
"name": "my-project",
"description": "Project by @DerZyklop",
"version": "0.0.0",
"foo": "bar"
}
Ответ 2
Вы также можете использовать jq и sponge (пакет moreutils) следующим образом:
jq '.foo="bar"' package.json | sponge package.json
С переменной среды:
jq --arg h "$HOMEPAGE" '.homepage=$h' package.json | sponge package.json