我正在尝试从shell脚本中添加或编辑package.json中的变量。所以,如果我有这样的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。
答案 0 :(得分:66)
package.json
只是json
个文件,因此您可以使用工具json
。要安装它,请使用:
npm install -g json
然后您可以就地编辑文件。更多信息here。
$ 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"
}
答案 1 :(得分:6)
如果不想安装任何东西,也可以用一行脚本修改package.json
:
node -e "let pkg=require('./package.json'); pkg.homepage='${CI_PAGES_URL}'; require('fs').writeFileSync('package.json', JSON.stringify(pkg, null, 2));"
答案 2 :(得分:3)
还有一个用于执行此操作的npm软件包,名为instance_template
:https://github.com/zeke/npe
npe
答案 3 :(得分:2)
答案 4 :(得分:0)