doc: Update docs/pnpm.md #670
This commit is contained in:
		@@ -134,7 +134,7 @@ Quick Reference
 | 
				
			|||||||
[package.json](./docs/package.json.md)<!--rehype:style=background: rgb(132 132 132);-->  
 | 
					[package.json](./docs/package.json.md)<!--rehype:style=background: rgb(132 132 132);-->  
 | 
				
			||||||
[Yarn](./docs/yarn.md)<!--rehype:style=background: rgb(33 136 182);-->  
 | 
					[Yarn](./docs/yarn.md)<!--rehype:style=background: rgb(33 136 182);-->  
 | 
				
			||||||
[nvm](./docs/nvm.md)<!--rehype:style=background: rgb(132 132 132);-->  
 | 
					[nvm](./docs/nvm.md)<!--rehype:style=background: rgb(132 132 132);-->  
 | 
				
			||||||
[pnpm](./docs/pnpm.md)<!--rehype:style=background: rgb(33 136 182);-->  
 | 
					[pnpm](./docs/pnpm.md)<!--rehype:style=background: rgb(191 133 0);-->  
 | 
				
			||||||
<!--rehype:class=home-card-->
 | 
					<!--rehype:class=home-card-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 工具
 | 
					## 工具
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,20 +1,12 @@
 | 
				
			|||||||
<svg
 | 
					<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 156 156">
 | 
				
			||||||
  xmlns="http://www.w3.org/2000/svg"
 | 
					<g fill="none" fill-rule="evenodd">
 | 
				
			||||||
  width="24"
 | 
					<polygon fill="#F9AD00" fill-rule="nonzero" points="155.808 48.684 107.027 48.684 107.027 -.097 155.808 -.097"/>
 | 
				
			||||||
  height="24"
 | 
					<polygon fill="#F9AD00" fill-rule="nonzero" points="102.139 48.684 53.358 48.684 53.358 -.097 102.139 -.097"/>
 | 
				
			||||||
  viewBox="0 0 24 24"
 | 
					<polygon fill="#F9AD00" fill-rule="nonzero" points="48 48.684 0 48.684 0 -.097 48 -.097"/>
 | 
				
			||||||
  fill="none"
 | 
					<polygon fill="#F9AD00" fill-rule="nonzero" points="155.808 102.344 107.027 102.344 107.027 53.562 155.808 53.562"/>
 | 
				
			||||||
  stroke="currentColor"
 | 
					<polygon fill="#4E4E4E" fill-rule="nonzero" points="102.139 102.344 53.358 102.344 53.358 53.562 102.139 53.562"/>
 | 
				
			||||||
  stroke-width="2"
 | 
					<polygon fill="#4E4E4E" fill-rule="nonzero" points="102.139 156.003 53.358 156.003 53.358 107.222 102.139 107.222"/>
 | 
				
			||||||
  stroke-linecap="round"
 | 
					<polygon fill="#4E4E4E" fill-rule="nonzero" points="155.808 156.003 107.027 156.003 107.027 107.222 155.808 107.222"/>
 | 
				
			||||||
  stroke-linejoin="round"
 | 
					<polygon fill="#4E4E4E" fill-rule="nonzero" points="48 156.003 0 156.003 0 107.222 48 107.222"/>
 | 
				
			||||||
>
 | 
					</g>
 | 
				
			||||||
  <path d="M3 17h4v4h-4z" />
 | 
					 | 
				
			||||||
  <path d="M10 17h4v4h-4z" />
 | 
					 | 
				
			||||||
  <path d="M17 17h4v4h-4z" />
 | 
					 | 
				
			||||||
  <path d="M17 10h4v4h-4z" />
 | 
					 | 
				
			||||||
  <path d="M17 3h4v4h-4z" />
 | 
					 | 
				
			||||||
  <path d="M10 10h4v4h-4z" />
 | 
					 | 
				
			||||||
  <path d="M10 3h4v4h-4z" />
 | 
					 | 
				
			||||||
  <path d="M3 3h4v4h-4z" />
 | 
					 | 
				
			||||||
</svg>
 | 
					</svg>
 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 443 B After Width: | Height: | Size: 1015 B  | 
@@ -314,6 +314,7 @@ $ npx create-react-app my-app --template typescript
 | 
				
			|||||||
`~/.npmrc` | 每个用户的配置文件
 | 
					`~/.npmrc` | 每个用户的配置文件
 | 
				
			||||||
`$PREFIX/etc/npmrc` | 全局配置文件
 | 
					`$PREFIX/etc/npmrc` | 全局配置文件
 | 
				
			||||||
`/path/to/npm/npmrc` | npm 内置配置文件
 | 
					`/path/to/npm/npmrc` | npm 内置配置文件
 | 
				
			||||||
 | 
					<!--rehype:className=left-align-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 配置内容
 | 
					### 配置内容
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -336,6 +337,7 @@ $ npx create-react-app my-app --template typescript
 | 
				
			|||||||
`cnpm` | <https://r.cnpmjs.org/>
 | 
					`cnpm` | <https://r.cnpmjs.org/>
 | 
				
			||||||
`taobao` | <https://registry.npmmirror.com/>
 | 
					`taobao` | <https://registry.npmmirror.com/>
 | 
				
			||||||
`npmMirror` | <https://skimdb.npmjs.com/registry/>
 | 
					`npmMirror` | <https://skimdb.npmjs.com/registry/>
 | 
				
			||||||
 | 
					<!--rehype:className=left-align-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `.npmignore`
 | 
					### `.npmignore`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										155
									
								
								docs/pnpm.md
									
									
									
									
									
								
							
							
						
						
									
										155
									
								
								docs/pnpm.md
									
									
									
									
									
								
							@@ -7,6 +7,7 @@ pnpm 备忘清单
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### pnpm 与 npm 命令比较
 | 
					### pnpm 与 npm 命令比较
 | 
				
			||||||
 | 
					<!--rehype:wrap-class=col-span-2 row-span-2-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
npm | pnpm | 说明
 | 
					npm | pnpm | 说明
 | 
				
			||||||
:- | :- | :-
 | 
					:- | :- | :-
 | 
				
			||||||
@@ -17,49 +18,7 @@ npm | pnpm | 说明
 | 
				
			|||||||
`npm update` | `pnpm update` | 更新包
 | 
					`npm update` | `pnpm update` | 更新包
 | 
				
			||||||
`npm cache clean` | `pnpm cache clean` | 清理缓存
 | 
					`npm cache clean` | `pnpm cache clean` | 清理缓存
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### pnpm install
 | 
					参考 [npm](./npm.md) 备忘清单
 | 
				
			||||||
 | 
					 | 
				
			||||||
```shell
 | 
					 | 
				
			||||||
--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
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```shell
 | 
					 | 
				
			||||||
--save # 将包添加到 dependencies
 | 
					 | 
				
			||||||
--save-dev # 将包添加到 devDependencies
 | 
					 | 
				
			||||||
--global # 全局安装包
 | 
					 | 
				
			||||||
--exact # 安装精确版本号的包
 | 
					 | 
				
			||||||
--shamefully-hoist # 类似于 npm 的 hoist 行为
 | 
					 | 
				
			||||||
--strict-peer-dependencies # 严格检查 peer dependencies
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
这些选项可用于 `pnpm add`。
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### pnpm remove
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```shell
 | 
					 | 
				
			||||||
# 从依赖中删除包
 | 
					 | 
				
			||||||
pnpm remove <package>
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### pnpm update
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```shell
 | 
					 | 
				
			||||||
# 更新所有包
 | 
					 | 
				
			||||||
pnpm update
 | 
					 | 
				
			||||||
# 更新特定包
 | 
					 | 
				
			||||||
pnpm update <package>
 | 
					 | 
				
			||||||
# 更新到最新版本(包括 major 版本)
 | 
					 | 
				
			||||||
pnpm update --latest
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
### pnpm list
 | 
					### pnpm list
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -72,6 +31,65 @@ pnpm list -g
 | 
				
			|||||||
pnpm outdated
 | 
					pnpm outdated
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### pnpm why
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```shell
 | 
				
			||||||
 | 
					# 显示为什么安装了某个包
 | 
				
			||||||
 | 
					pnpm why <package>
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### pnpm install
 | 
				
			||||||
 | 
					<!--rehype:wrap-class=row-span-3-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pnpm | 说明
 | 
				
			||||||
 | 
					:- | :-
 | 
				
			||||||
 | 
					`--no-lockfile` | 不生成 pnpm-lock.yaml 锁定文件
 | 
				
			||||||
 | 
					`--force` | 强制覆盖现有的 node_modules
 | 
				
			||||||
 | 
					`--frozen-lockfile` | 忽略 pnpm-lock.yaml 中的更改
 | 
				
			||||||
 | 
					`--offline` | 离线模式,不尝试从远程仓库安装包
 | 
				
			||||||
 | 
					`--shamefully-hoist` | 类似于 npm 的 hoist 行为
 | 
				
			||||||
 | 
					`--strict-peer-dependencies` | 严格检查 peer dependencies
 | 
				
			||||||
 | 
					<!--rehype:className=style-list-arrow-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					这些选项可用于 `pnpm install`。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### pnpm add
 | 
				
			||||||
 | 
					<!--rehype:wrap-class=row-span-3-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pnpm | 说明
 | 
				
			||||||
 | 
					:- | :-
 | 
				
			||||||
 | 
					`--save` | 将包添加到 dependencies
 | 
				
			||||||
 | 
					`--save-dev` | 将包添加到 devDependencies
 | 
				
			||||||
 | 
					`--global` | 全局安装包
 | 
				
			||||||
 | 
					`--exact` | 安装精确版本号的包
 | 
				
			||||||
 | 
					`--shamefully-hoist` | 类似于 npm 的 hoist 行为
 | 
				
			||||||
 | 
					`--strict-peer-dependencies` | 严格检查 peer dependencies
 | 
				
			||||||
 | 
					<!--rehype:className=style-list-arrow-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					这些选项可用于 `pnpm add`。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### pnpm update
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```shell
 | 
				
			||||||
 | 
					# 更新所有包
 | 
				
			||||||
 | 
					pnpm update
 | 
				
			||||||
 | 
					# 更新特定包
 | 
				
			||||||
 | 
					pnpm update <package>
 | 
				
			||||||
 | 
					# 更新到最新版本(包括 major 版本)
 | 
				
			||||||
 | 
					pnpm update --latest
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### pnpm remove
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```shell
 | 
				
			||||||
 | 
					# 从依赖中删除包
 | 
				
			||||||
 | 
					pnpm remove <package>
 | 
				
			||||||
 | 
					# 删除全局依赖包
 | 
				
			||||||
 | 
					pnpm remove -g create-react-app
 | 
				
			||||||
 | 
					# 删除特定版本的依赖包
 | 
				
			||||||
 | 
					pnpm remove lodash@4.17.21
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### pnpm cache
 | 
					### pnpm cache
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```shell
 | 
					```shell
 | 
				
			||||||
@@ -81,13 +99,6 @@ pnpm cache clean
 | 
				
			|||||||
pnpm cache list
 | 
					pnpm cache list
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### pnpm why
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```shell
 | 
					 | 
				
			||||||
# 显示为什么安装了某个包
 | 
					 | 
				
			||||||
pnpm why <package>
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
示例
 | 
					示例
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -110,6 +121,12 @@ pnpm add <package>@<version>
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
pnpm remove <package>
 | 
					pnpm remove <package>
 | 
				
			||||||
 | 
					# 删除多个依赖包
 | 
				
			||||||
 | 
					pnpm remove lodash express
 | 
				
			||||||
 | 
					# 删除全局依赖包
 | 
				
			||||||
 | 
					pnpm remove -g create-react-app
 | 
				
			||||||
 | 
					# 删除特定版本的依赖包
 | 
				
			||||||
 | 
					pnpm remove lodash@4.17.21
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 查看包
 | 
					### 查看包
 | 
				
			||||||
@@ -154,37 +171,39 @@ Monorepo
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 创建 Monorepo 工作区
 | 
					### 创建 Monorepo 工作区
 | 
				
			||||||
 | 
					<!--rehype:wrap-class=row-span-3-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
1. 创建一个新的 pnpm 工作区:
 | 
					- 创建一个新的 pnpm 工作区:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					  ```bash
 | 
				
			||||||
pnpm init -w
 | 
					  pnpm init -w
 | 
				
			||||||
```
 | 
					  ```
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
这将在项目的根目录中创建一个 `pnpm-workspace.yaml` 文件,内容如下:
 | 
					- 将在项目的根目录中创建一个 `pnpm-workspace.yaml` 文件,内容如下:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					  ```yaml
 | 
				
			||||||
packages:
 | 
					  packages:
 | 
				
			||||||
  - 'packages/**'
 | 
					    - 'packages/**'
 | 
				
			||||||
  - 'apps/**'
 | 
					    - 'apps/**'
 | 
				
			||||||
```
 | 
					  ```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
2. 在 `pnpm-workspace.yaml` 中定义您的工作区结构:
 | 
					- 在 `pnpm-workspace.yaml` 中定义您的工作区结构:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					  ```yaml
 | 
				
			||||||
packages:
 | 
					  packages:
 | 
				
			||||||
  - 'packages/*'
 | 
					    - 'packages/*'
 | 
				
			||||||
  - 'apps/*'
 | 
					    - 'apps/*'
 | 
				
			||||||
```
 | 
					  ```
 | 
				
			||||||
 | 
					<!--rehype:className=style-timeline-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 添加包到 Monorepo 工作区
 | 
					### 添加包到 Monorepo 工作区
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
# 在工作区中添加包
 | 
					pnpm add <package> -w # 在工作区中添加包
 | 
				
			||||||
pnpm add <package> -w
 | 
					 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 运行脚本
 | 
					### 运行脚本
 | 
				
			||||||
 | 
					<!--rehype:wrap-class=row-span-2-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
# 在所有包中运行脚本
 | 
					# 在所有包中运行脚本
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user