pnpm monorepo中如何从根目录仅在指定子包执行命令?
pnpm monorepo 根目录为指定子包安装依赖的方法
pnpm 原生支持在根目录操作、仅给单个/多个指定子包安装依赖,不需要进入子包目录,对应 npm --workspace=xxx 参数的能力,pnpm 通过 --filter(可简写为 -F)参数指定目标子包即可。
基础用法
比如要给名为 a 的子包安装生产依赖 react,在根目录执行以下命令:
pnpm add react --filter a
如果要安装开发依赖,追加 -D 参数即可,例如给子包a安装开发依赖eslint:
pnpm add eslint -D --filter a
注意事项
--filter后面传入的是目标子包package.json中name字段的值,不是子包的文件夹名称,如果子包包名和文件夹名不一致,要填写实际的包名- 如果需要同时给多个指定子包安装同一个依赖,多个包名之间用逗号分隔即可,例如同时给
a、b两个子包安装lodash:pnpm add lodash --filter a,b - 执行命令后,依赖只会写入对应目标子包的
package.json和依赖目录,不会污染根目录或其他无关子包的依赖配置,该能力在pnpm 3.x及以上版本均稳定支持,不需要额外配置或插件。
内容的提问来源于stack exchange,提问作者Jonathan Lightbringer
相关产品推荐
相关产品推荐

