Anonymous View
跳到主内容
版本:11.x

pnpm pkg

添加于:v11.3.0

通过命令行管理 package.json 的内容。

pnpm pkg get [<key> [<key> ...]]
pnpm pkg set <key>=<value> [<key>=<value> ...]
pnpm pkg delete <key> [<key> ...]
pnpm pkg fix

嵌套字段通过点分隔的路径进行寻址(例如 scripts.testrepository.url)。

命令

get

package.json 获取一个值。 如果不带参数,则打印完整的清单。 携带一个或多个键时,打印请求的字段。

pnpm pkg get name
pnpm pkg get name version
pnpm pkg get scripts.test

当仅请求单个键且其对应的值为字符串时,将直接输出该原始值;否则,该值将经过 JSON 编码后输出。 传入 --json 以始终输出 JSON。

set

设置 package.json 中的一个或多个值。 每个参数都采用 key=value 形式。

pnpm pkg set name=my-package
pnpm pkg set scripts.build="tsc -p ."
pnpm pkg set 'keywords[0]'=cli

默认情况下,该值存储为字符串。 传入 --json 参数,以便在存储前将值解析为 JSON(适用于布尔值、数字、数组和对象):

pnpm pkg set private=true --json
pnpm pkg set 'engines={"node":">=22"}' --json

delete

package.json 中移除一个或多个键。

pnpm pkg delete scripts.test
pnpm pkg delete keywords

fix

自动修正 package.json 中的常见错误(例如:移除非字符串类型的 nameversion 字段;剔除值非对象类型的 dependenciesscripts 块;剔除既非字符串也非对象的 bin 字段)。

pnpm pkg fix

配置项

--json

在设置时,会在写入前将每个 value 解析为 JSON。 获取单个键时,返回 JSON 编码格式,而非原始值。

--recursive, -r

在工作区中的每个项目上,或在通过 --filter 选定的每个项目上运行子命令。

pnpm -r pkg get name
pnpm -r pkg set version=1.0.0
pnpm --filter "./packages/*" pkg get name

pnpm -r pkg get 返回一个以包名为键的 JSON 对象;setdeletefix 操作适用于每个匹配的项目。