pnpm
Q:解决了什么问题?
- A:
- 更快
- 使用非扁平目录,避免幽灵依赖
Q:什么是幽灵依赖?
- A:依赖内部使用的依赖,被当前项目引用。
Q:为什么使用非扁平化目录?
- A:防止依赖包内部引用包找不到了
Q:如何从老项目中安全过渡?
A:
复制原项目文件做备份
检查package.json配置是否正确
- 用原包管理工具重新安装依赖,运行项目查看依赖配置是否有效。
删除文件中
node_modules文件bashrm -rf node_modules使用原
xxx-lock.xxx文件生成pnpm-lock.yaml文件bashpnpm import检查是否有使用内部源,若有使用则切换源地址
bashpnpm config set registry {源地址}安装依赖
bashpnpm i处理报错
bashpnpm add {缺失包} -{mode}注意:根据包对项目的影响决定添加包至不同的模式
mode:- d:生产环境依赖
- D:开发环境依赖
Q:如何查看当前镜像源?
A:
bashpnpm config get registry
Q:为什么修改镜像源失败?
- A:
- 检查项目中
.npmrc文件中registry=的值
- 检查项目中
Q:依赖安装过程终端显示内容是啥?
A:
bashProgress: resolved 175, reused 175, downloaded 0, added 0resolved:解析依赖树时发现的所有依赖项的数量reused:pnpm 从缓存中复用的依赖项的数量。downloaded:从远程仓库下载的依赖项的数量。added:将下载的依赖项添加到项目中的数量。
bug处理
bug:mac系统全局安装找不到全局路径?

处理方法
终端运行pnpm setup命令
找到用户的主目录下的.zshrc 文件(注意:该文件默认隐藏,可以用Cmd + Shift +。查看)
修改
.zshrcbash# pnpm export PNPM_HOME="/Users/xxx/Library/pnpm" case ":$PATH:" in *":$PNPM_HOME:"*) ;; *) export PATH="$PNPM_HOME:$PATH" ;; esac ++ export PATH="/Users/xxx/Library/pnpm/bin:$PATH" # pnpm end(XXX:替换为自己的用户的主目录)
终端运行source ~/.zshrc命令