描述

中英双语

自动管理 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