如何使用json命令向package.json的scripts中追加内容而非覆盖?
如何用
json命令向package.json的scripts追加内容 好问题!你之前的命令之所以会覆盖整个scripts对象,是因为直接把this.scripts重新赋值成了一个全新的对象——相当于把原来的脚本列表整个换掉了。要实现追加(保留原有脚本,添加新的),我们只需要在原有的scripts对象上直接添加属性,或者合并新的脚本对象进去就行。
这里有两种常用的方式:
1. 单个脚本追加
如果只需要添加一个新脚本,直接给this.scripts添加对应的属性即可:
json --in-place -f ./package.json -e 'this.scripts.foo = "bar"'
执行这个命令后,原来package.json里的scripts会保留所有原有内容,同时新增"foo": "bar"这一项。如果原来已经有foo脚本,它会被新值覆盖。
2. 批量追加多个脚本
如果要一次性添加多个新脚本,可以用Object.assign()方法,把原有scripts对象和新的脚本对象合并:
json --in-place -f ./package.json -e 'this.scripts = Object.assign(this.scripts, {"foo": "bar", "baz": "qux"})'
这个命令会把新的脚本键值对合并到原有scripts中,同样,若有同名脚本,新值会覆盖旧值,其余原有脚本保持不变。
内容的提问来源于stack exchange,提问作者n8tron
相关产品推荐
相关产品推荐

