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.test、repository.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 中的常见错误(例如:移除非字符串类型的 name 或 version 字段;剔除值非对象类型的 dependencies 或 scripts 块;剔除既非字符串也非对象的 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 对象;set、delete 和 fix 操作适用于每个匹配的项目。

