跳到主要内容
pnpm
文档目录

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 获取值。不带参数时打印完整 manifest;带一个或多个键时打印所请求的字段。

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,删除值不是对象的依赖 / 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 对象;setdeletefix 会应用于每个匹配的项目。

本页内容译自pnpm 官方文档(MIT License),如有出入以英文原文为准。