Skip to content

3-npm yarn pnpm

https://yarn.bootcss.com/

CLI 命令比较

作用npmyarnpnpm
安装npm installyarn installpnpm install
安装的简写npm iyarn addpnpm add
强制安装npm i xxx --forceyarn add xxx --forcepnpm add --force
卸载npm unintallyarn removepnpm remove
卸载简写npm rmyarn rmpnpm rm
全局安装npm i xxx --global/-gyarn global add xxxpnpm add -g xxx
安装包(生产模式)npm i xxx --save/-Syarn add xxxpnpm add xxx
开发模式安装包npm i xxx --save-dev/-Dyarn add xxx -dev/-Dpnpm add -D xxx
检查更新npm outdatedyarn outdatedpnpm outdated
更新npm updateyarn upgradepnpm update
全局更新npm update -gyarn global upgradepnpm update -g
运行npm run xxxyarn run xxxpnpm run xxx
清除缓存npm cache cleanyarn cache cleanpnpm store path
动态包执行npx xxxyarn dlx xxxpnpm dlx xxx
查看全局安装的包npm list -g --depth 0yarn global listpnpm list -g

切换镜像源

sh
npm install -g nnrm
nnrm ls
nnrm use xxx

pnpm 删除缓存

bash
# 每块硬盘每个分区上都有缓存
# 例如D盘的项目会在D盘建立缓存

# 删除不被硬链接的包
pnpm store prune
# 强制删除所有pnpm缓存
pnpm store path
rm -rf ~/.pnpm-store

macos npm install -g 权限问题

bash
# permission denied
使用n/nvm等管理器重新安装node, 且提前设置好安装的路径, 安装在不需要权限的路径, 例如 $HOME/.n/

快速清理电脑上的 node_modules

sh
npm i -g npkill
// 进入对应目录
npkill

配置文件指定镜像源

sh
# 项目根目录
vim .npmrc
# 淘宝源
registry=https://registry.npmmirror.com/

lock文件

json
"vue": "3.0.11" 只装这个版本, 精确到补丁版本号  
"vue": "~3.0.11" 可以装 3.0.* 的最新版本  
"vue": "^3.0.11" 可以装 3.* 的最新版本

减少依赖

sh
pnpm dedupe

pnpm原本会分别安装B1和B2,dedupe命令执行后,会检测到这是同一个包,然后安装一个兼容B1和B2的B版本,A和C都依赖这个B版本。

这样可以减少重复安装,节省磁盘空间。

此外,dedupe还可以删除不再被使用的依赖,进一步优化依赖树。

所以pnpm dedupe是一个很有用的命令,可以有效优化pnpm安装的模块大小,减少不必要的重复依赖。