这是一份 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
1 | 列出所有已安装的包 |
pnpm why
1 | 显示为什么安装了某个包 |
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
1 | 更新所有包 |
pnpm remove
1 | 从依赖中删除包 |
pnpm cache
1 | 清理 pnpm 缓存 |
示例
安装包
1 | # 将包添加到“dependencies” |
移除包
1 | pnpm remove <package> |
查看包
1 | # 列出已安装的包 |
清除
1 | # 清理 node_modules 并删除不必要的文件 |
信息
1 | # 显示关于安装包的原因的信息 |
清理缓存
1 | # 清除 pnpm 的全局缓存 |
此外,您可以指定一个或多个要清理的包。
Monorepo
创建 Monorepo 工作区
创建一个新的 pnpm 工作区:
1
pnpm init -w
将在项目的根目录中创建一个
pnpm-workspace.yaml
文件,内容如下:1
2
3packages:
- 'packages/**'
- 'apps/**'在
pnpm-workspace.yaml
中定义您的工作区结构:1
2
3packages:
- 'packages/*'
- 'apps/*'
添加包到 Monorepo 工作区
1 | pnpm add <package> -w # 在工作区中添加包 |
运行脚本
1 | # 在所有包中运行脚本 |
添加工作区范围的依赖
1 | # 添加依赖到工作区根目录 |
创建新的包
在 packages
目录中创建新的包,例如:
1 | mkdir packages/new-package |
链接本地包
1 | # 将本地包链接到当前工作区 |
高级用法
工作区
1 | # 创建工作区 |
链接
1 | # 链接一个全局包到当前项目 |
运行脚本
1 | # 运行 package.json 中的脚本 |
另见
评论