快速、节省磁盘空间的软件包管理器
- 安装npm install -g pnpm
npm rm -g pnpm
-
pnpm -v
-
升级:pnpm add -g pnpm to update
-
设置源:
- pnpm config get registry //查看源
- pnpm config set registry https://registry.npmmirror.com //切换淘宝源
-
pnpm install
-
pnpm cmd
-
安装
pnpm install 包 //
pnpm i 包
pnpm add 包 // -S 默认写入dependencies
pnpm add -D // -D devDependencies
pnpm add -g // 全局安装 -
移除
pnpm remove 包 //移除包
pnpm remove 包 --global //移除全局包 -
更新
pnpm up //更新所有依赖项
pnpm upgrade 包 //更新包
pnpm upgrade 包 --global //更新全局包 -
.npmrc
pnpm从命令行、环境变量和.npmrc文件获取其配置。
依赖关系提升设置
-
hoist: true
- 如果为true,则所有依赖项都被提升到node_modules/.pnpm。这使得node_modules内的所有包都可以访问未列出的依赖项。
-
hoist-pattern
- 告诉pnpm应该将哪些包提升到node_modules/.pnpm。默认情况下,所有包都会被提升,但是,如果您知道只有一些有缺陷的包具有幻像依赖项,则可以使用此选项专门提升幻象依赖项(推荐)。
-
pnpm-workspace.yaml定义了工作区的根目录,并允许您从工作区中包括/排除目录。默认情况下,包含所有子目录的所有包。
-
您应该始终提交Lockfile(pnpm-lock.yaml)。这有多种原因,其中最主要的是:
- 由于能够跳过包解析,它可以加快CI和生产环境的安装速度
- 它在开发、测试和生产环境之间强制执行一致的安装和解决方案,这意味着测试和生产中使用的包将与您开发项目时完全相同
-
合并冲突
-
pnpm可以自动解决pnpm-lock.yaml中的合并冲突。如果有冲突,只需运行pnpm安装并提交更改。
- pnpm install
命令行 tab 自动补全
brew install fig
包从内容寻址存储硬链接到虚拟存储。
内容可寻址存储位于: