npm、yarn 和 pnpm 的区别、安装、更新、清除/查看缓存方式

一、简介

  • 区别差异

    特性npmyarnpnpm
    速度npm 5+ 使用 package-lock.json 提高速度,但仍不及 pnpm。快于 npm,得益于并行安装和缓存机制。更快,占用更少磁盘空间,因为共享依赖采用硬链接或符号链接。
    磁盘占用下载依赖直接解压到 node_modules 中,占用空间较大。类似 npm,但稍加优化,重复依赖会复用缓存。更省磁盘空间,依赖文件存储在全局共享目录,项目内用符号链接。
    离线模式需要在线安装,即使缓存了依赖也不能完全离线工作。支持离线模式,已安装的依赖可通过缓存安装。完美支持离线模式,缓存更高效。
    锁定文件package-lock.json 文件锁定依赖版本。yarn.lock 格式更简洁,版本锁定更严谨。使用 pnpm-lock.yaml,兼顾效率与一致性。
    依赖解析自动安装依赖,可能会出现子依赖版本冲突。默认更好地解决依赖冲突,确保一致性。采用去中心化模式,同一依赖的多个版本不会重复安装到子目录。
    工作区支持原生支持(需配置 workspaces)。原生支持多包工作区,开发单体仓库时较方便。原生支持多包工作区,性能优化更明显,且占用更少的磁盘空间。
    独特功能提供 npm audit 检测依赖漏洞等功能。提供 yarn dlx 等快捷功能。速度最快,省空间;还支持 --frozen-lockfile 精确安装锁定版本。
  • 选择建议

    场景推荐工具
    个人开发pnpm:节省磁盘空间,安装速度快。
    团队开发(已有 npm 或 yarn)npm 或 yarn:优先与团队保持一致。
    大型项目(单体仓库、多包项目)pnpm 或 yarn:工作区支持更强。
    兼容性优先npm:最广泛使用,第三方工具支持最好。

二、安装方式

1、npm 的安装

npm 是 Node.js 自带的包管理工具,安装 Node.js 即可自动安装 npm

  • 安装 Node.js

    前往 Node.js 官方网站,根据操作系统下载对应版本的安装包,或使用 nvm 进行安装管理

    验证安装:

    $ npm -v
    
  • 更新 npm

    # 查看可用版本
    $ npm view npm versions
    
    # 更新到最新版本(不带 @latest 默认最新版本)
    $ npm install -g npm@latest
    
    # 更新到指定版本
    $ npm install -g npm@<版本号>
    $ npm install -g npm@9.8.1
    

2、yarn 的安装

可通过以下方式安装 yarn

  • 通过 npm 安装

    $ npm install -g yarn
    

    更新:

    # 查看可用版本
    $ npm view yarn versions
    
    # 更新到最新版本(不带 @latest 默认最新版本)
    $ npm install -g yarn@latest
    
    # 更新到指定版本
    $ npm install -g yarn@<版本号>
    $ npm install -g yarn@1.22.19
    
  • 通过系统包管理工具

  • 验证安装:

    $ yarn -v
    

3、pnpm 的安装

pnpm 是一款现代、高效的包管理工具。

  • 通过 npm 安装

    $ npm install -g pnpm
    

    更新:

    # 查看可用版本
    $ npm view pnpm versions
    
    # 更新到最新版本(不带 @latest 默认最新版本)
    $ npm install -g pnpm@latest
    
    # 更新到指定版本
    $ npm install -g pnpm@<版本号>
    $ npm install -g pnpm@8.11.0
    
  • 验证安装:

    $ pnpm -v
    

三、常用初始化、更新版本指令

  • 初始化指令

    工具指令作用
    npmnpm installnpm i根据 package.json 文件安装项目中定义的所有依赖。
    yarnyarn installyarn根据 package.jsonyarn.lock 安装项目依赖。
    pnpmpnpm installpnpm i根据 package.jsonpnpm-lock.yaml 安装依赖,并使用硬链接节省空间和提高速度。
  • 更新指令

    工具更新依赖到指定版本
    npm$ npm install <包名>@<版本号>
    yarn$ yarn add <包名>@<版本号>
    pnpm$ pnpm add <包名>@<版本号>
  • 示例:更新 react18.2.0

    • npm: $ npm install react@18.2.0
    • yarn: $ yarn add react@18.2.0
    • pnpm: $ pnpm add react@18.2.0
  • 全局更新包

    • npm: $ npm install -g <包名>@<版本号>
    • yarn: $ yarn global add <包名>@<版本号>
    • pnpm: $ pnpm add -g <包名>@<版本号>

四、清除缓存指令

  • 指令

    工具清除缓存指令
    npm$ npm cache clean --force
    yarn$ yarn cache clean
    pnpm$ pnpm store prune
  • 说明

    • $ npm cache clean --force:强制清除缓存。
    • $ yarn cache clean:清除缓存目录中所有的已缓存包。
    • $ pnpm store prune:移除所有不再被使用的包(pnpm 的缓存目录称为“store”)。
  • 查看缓存路径

    • npm: $ npm config get cache
    • yarn: $ yarn cache dir
    • pnpm: $ pnpm store path
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡尔特斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值