npm8中文文档
自动管理 package.json
文件的命令。npm pkg
提供 3 个不同的子命令,允许您修改或检索 package.json
中给定对象键的值。
检索和设置字段的语法是在 package.json
中找到的嵌套对象属性的点分隔表示,它与 npm view
中用于从注册表清单中检索信息的表示法相同,您可以在下面找到有关如何使用它的更多示例.
返回值始终为 json 格式。
npm pkg get <field>
检索在 package.json
文件中定义的值 key
。
例如,为了检索当前包的名称,您可以运行:
npm pkg get name
也可以一次检索多个值:
npm pkg get name version
您可以通过用句点分隔子字段来查看子字段。要检索测试 script
值的值,您将运行以下命令:
npm pkg get scripts.test
对于数组字段,请求非数字字段将返回列表中对象的所有值。例如,要获取一个包的所有贡献者电子邮件,您可以运行:
npm pkg get contributors.email
您还可以在方括号中使用数字索引来专门选择数组字段中的项目。要获取列表中第一个贡献者的电子邮件地址,您可以运行:
npm pkg get contributors[0].email
对于复杂字段,您还可以在方括号中命名属性以专门选择子字段。这对导出对象特别有用:
npm pkg get "exports[.].require"
npm pkg set <field>=<value>
根据 field
值在 package.json
中设置 value
。保存到 package.json
文件时,使用在 npm install
和其他涉及 package.json
文件的 cli 命令期间使用的相同规则集,确保尊重现有缩进并可能在将值保存到文件之前应用一些验证。
用于从包中检索值的相同语法也可用于定义新属性或覆盖现有属性,以下是如何使用点分隔语法编辑 package.json
文件的一些示例。
在你的 package.json
中定义一个名为 mynewcommand
的新 bin,它指向一个文件 cli.js
:
npm pkg set bin.mynewcommand=cli.js
一次设置多个字段也是可能的:
npm pkg set description='Awesome package' engines.node='>=10'
也可以添加到数组值,例如添加新的贡献者条目:
npm pkg set contributors[0].name='Foo' contributors[0].email='foo@bar.ca'
您还可以使用特殊的空括号表示法将项目附加到数组的末尾:
npm pkg set contributors[].name='Foo' contributors[].name='Bar'
在将值保存到 package.json
文件之前,也可以将值解析为 json,例如为了设置 "private": true
属性:
npm pkg set private=true --json
它还可以将值保存为数字:
npm pkg set tap.timeout=60 --json
npm pkg delete <key>
从你的 package.json
中删除一个 key
用于从包中设置值的相同语法也可用于删除现有值。例如,为了删除名为 build 的脚本:
npm pkg delete scripts.build