https://pnpm.io/zh/installation
安装
npm install -g pnpm
升级
pnpm add -g pnpm
故障排查
- which pnpm来找到 pnpm 的位置
pnpm CLI
与 npm 的差别
- 与 npm 不同的是,pnpm 会校验所有的参数。
- 设置明确的环境变量:npm_config_foo=true pnpm install
- 用 --config.强制使用未知选项: pnpm install --config.foo
配置项
- -C
, --dir <path> 在 <path> 中启动 pnpm ,而不是当前的工作目录。 - -w, --workspace-root 在工作空间的根目录中启动 pnpm ,而不是当前的工作目录。
命令行
- npm install => pnpm install
- npm i
=> pnpm add - npm run
=> pnpm - 当你使用一个未知命令时, pnpm 会查找一个具有指定名称的脚本, 所以 pnpm run lint 和 pnpm lint相同. 如果没有指定名称的脚本,那么pnpm将以shell脚本的形式执行该命令,所以你可以做类似pnpm eslint的事情
配置
- pnpm 使用 npm 的配置 格式
pnpm config set store-dir /path/to/.pnpm-store
- pnpm 也允许您使用所有标记为作选项的参数(例如 --filter 或 --workspace concurrency)
workspace-concurrency = 1
filter = @my-scope/*
过滤
pnpm <command> --filter <package_selector>
- 要选择准确的包,只需指定其名称或使用 模式来选择一组包
pnpm test --filter "@babel/core"
pnpm test --filter "@babel/*"
pnpm test --filter "*core"
- 要选择一个软件包及其依赖项 (直接和非直接) 在包名称后加上省略号
- 下一个命令将运行 foo 及其所有依赖的测试
pnpm test --filter foo...
- 可以使用通配符来选择一组根目录包
pnpm test --filter "@babel/preset-*..."
- 要只选择一个包的依赖项(直接和非直接), 在包名前添加一个山形符号加上上面提到的省略号。
pnpm test --filter "...^foo"
-
要仅选择指定目录下的包,您可以指定任何相对路径,路径通常为 POSIX 格式。
--filter ./<directory>
-
包括指定目录下的所有项目。也可以使用省略号与山形符号来选择依赖项与被依赖项
pnpm <cmd> --filter ...{<directory>}
pnpm <cmd> --filter {<directory>}...
pnpm <cmd> --filter ...{<directory>}...