PNPM 常用命令
pnpm 备忘清单
这是一份 pnpm 软件包管理器备忘单,其中列出了 pnpm 常用命令使用清单。
入门
pnpm 与 npm 命令比较
| npm | pnpm | 说明 |
|---|---|---|
npm install | pnpm install | 安装依赖 |
npm init | pnpm init | 创建 package.json 文件 |
npm install <package> | pnpm add <package> | 安装包 |
npm install -g <package> | pnpm add -g <package> | 全局安装包 |
npm update | pnpm update | 更新包 |
npm cache clean | pnpm cache clean | 清理缓存 |
参考 npm 备忘清单
pnpm list
# 列出所有已安装的包 pnpm list # 列出全局安装的包 pnpm list -g # 查找过时的包 pnpm outdated
pnpm why
# 显示为什么安装了某个包 pnpm why <package>
pnpm install
| pnpm | 说明 |
|---|---|
--no-lockfile | 不生成 pnpm-lock.yaml 锁定文件 |
--force | 强制覆盖现有的 node_modules |
--frozen-lockfile | 忽略 pnpm-lock.yaml 中的更改 |
--offline | 离线模式,不尝试从远程仓库安装包 |
--shamefully-hoist | 类似于 npm 的 hoist 行为 |
--strict-peer-dependencies | 严格检查 peer dependencies |
这些选项可用于 pnpm install。
pnpm add
| pnpm | 说明 |
|---|---|
--save | 将包添加到 dependencies |
--save-dev | 将包添加到 devDependencies |
--global | 全局安装包 |
--exact | 安装精确版本号的包 |
--shamefully-hoist | 类似于 npm 的 hoist 行为 |
--strict-peer-dependencies | 严格检查 peer dependencies |
这些选项可用于 pnpm add。
pnpm update
# 更新所有包 pnpm update # 更新特定包 pnpm update <package> # 更新到最新版本(包括 major 版本) pnpm update --latest
pnpm remove
# 从依赖中删除包 pnpm remove <package> # 删除全局依赖包 pnpm remove -g create-react-app # 删除特定版本的依赖包 pnpm remove [email protected]
pnpm cache
# 清理 pnpm 缓存 pnpm cache clean # 查看缓存中所有的包 pnpm cache list
示例
安装包
# 将包添加到“dependencies” pnpm add <package> # 将包添加到“devDependencies” pnpm add -D <package> # 将包作为精确版本添加 pnpm add --exact <package> # 在全局范围内安装包 pnpm add -g <package> # 安装特定版本的包 pnpm add <package>@<version>
移除包
pnpm remove <package> # 删除多个依赖包 pnpm remove lodash express # 删除全局依赖包 pnpm remove -g create-react-app # 删除特定版本的依赖包 pnpm remove [email protected]
查看包
# 列出已安装的包 pnpm list # 列出顶级安装的包 pnpm list --depth 0 # 列出全局安装的包 pnpm list -g # 根据模式和深度列出包 pnpm list --pattern "lodash" --depth 1
清除
# 清理 node_modules 并删除不必要的文件 pnpm prune # 检查过时的包 pnpm outdated
信息
# 显示关于安装包的原因的信息 pnpm why <package>
清理缓存
# 清除 pnpm 的全局缓存 pnpm cache clean
此外,您可以指定一个或多个要清理的包。
Monorepo
创建 Monorepo 工作区
- 创建一个新的 pnpm 工作区:
bash pnpm init -w
- 将在项目的根目录中创建一个
pnpm-workspace.yaml文件,内容如下:yaml packages: - 'packages/**' - 'apps/**'
- 在
pnpm-workspace.yaml中定义您的工作区结构:yaml packages: - 'packages/*' - 'apps/*'
添加包到 Monorepo 工作区
pnpm add <package> -w # 在工作区中添加包
运行脚本
# 在所有包中运行脚本 pnpm -r run <script> # 仅在某个包中运行脚本 pnpm --filter <package> run <script> # 在某个包及其依赖中运行脚本 pnpm --filter <package>... run <script>
添加工作区范围的依赖
# 添加依赖到工作区根目录 pnpm add <package> -w # 添加开发依赖到工作区根目录 pnpm add -D <package> -w
创建新的包
在 packages 目录中创建新的包,例如:
mkdir packages/new-package cd packages/new-package pnpm init
链接本地包
# 将本地包链接到当前工作区 pnpm link <local-package-path> # 链接工作区中的包 pnpm add <local-package-name> --workspace
高级用法
工作区
# 创建工作区 pnpm init -w # 在工作区中添加包 pnpm add <package> -w
链接
# 链接一个全局包到当前项目 pnpm link <package> # 链接本地包到全局 pnpm link --global <package>
运行脚本
# 运行 package.json 中的脚本 pnpm run <script> # 运行根目录中的包的脚本 pnpm run -w <script>
