npm,yarn,cnpm,pnpm的区别

npm

npm是node.js自带的包管理工具,围绕语义版本控制
npm中有三种版本号:

  1. 主版本号:5.1.0当主API改变,并与之前的版本号不兼容的时候
  2. 次版本号:当增加了功能,但是向后兼容的时候
  3. 补丁版本号:当做了向后兼容但是版本有缺陷的时候

这就导致不同的人下载的版本号不同,可能会出现问题

npm2的时候,经常出现某个依赖包还需要另一个依赖包来支持,这时候就会出现依赖包嵌套,嵌套太多层就导致结构非常混乱,在npm3的时候,采用扁平依赖树来解决,所以我们的项目下只有node_modules和其他的包,但是用这个包就必须遍历所有依赖包再生成依赖树,所以npm下载非常耗时

cnpm

因为国内使用npm下载太慢了,所以淘宝提供了镜像cnpm访问

cnpm坑点:npm有packge-lock.json是用来锁定安装的包的版本号,但是cnpm不受packge-lock.json的限制,cnpm只根据packge.json来下载安装包

yarn

yarn是由Google和Facebook等公司开发出来的新的包管理工具,由于npm有以下缺点:

  1. 下载速度慢
  2. 安装速度慢
  3. 下载版本不一致

所以yarn针对这些缺点:

  1. 通过并行下载,提高下载的速度
  2. 通过yarn.lock来保存包之间的依赖关系,保证包的版本一致
  3. 通过yarn.lock来保存依赖关系,下一次安装更快
  4. 支持离线下载

npm下载都会有本地缓存,但是npm需要联网才能从缓存中获取,而yarn可以不联网就离线下载
npm5也支持了包的版本一致,使用了packge-lock.json

pnpm

pnpm的下载速度甚至超过了yarn和npm,它使用硬链接和符号链接避免复制所有本地源文件,同时也继承了yarn的优点,支持离线下载和包的版本一致问题

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
npm、cnpmyarn、pnpm和nvm都是基于npm的包管理工具,它们都有一些共同的功能,如安装、卸载和更新包。然而,它们也有一些区别和特点。 1. npmNode.js官方的包管理器,是最常用的工具之一。它具有广泛的社区支持和丰富的生态系统。npm的速度和性能已经得到了很大的改进,因此现在与其他工具没有太大的区别。 2. cnpmnpm的一个国内镜像源,提供了更快的下载速度。通过将npm仓库源切换为淘宝镜像,可以使用cnpm来代替npm。使用cnpm安装包的方式与使用npm是一样的。 3.***依赖关系管理。yarn采用了并行和缓存机制来提高性能和可靠性。此外,yarn还引入了锁定文件(yarn.lock),用于确保项目的依赖关系的一致性。 4. pnpm是另一种包管理工具,它与yarn类似,也是为了解决npm的一些问题而创建的。pnpm使用一种称为“硬链接”的技术,将依赖关系存储在一个地方,并在项目之间共享它们,从而减少了磁盘空间和网络带宽的使用。 5. nvm是Node.js版本管理工具,允许您在同一台机器上同时安装和切换不同版本的Node.js。通过nvm,您可以轻松地在不同的项目中使用特定的Node.js版本,以满足项目的要求。 综上所述,npm、cnpmyarn、pnpm和nvm都是用于管理Node.js项目的工具,它们在性能、依赖关系管理和版本控制方面有一些区别。您可以根据具体的项目需求选择使用其中之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值