我是靠谱客的博主 怕孤单小鸽子,最近开发中收集的这篇文章主要介绍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的优点,支持离线下载和包的版本一致问题

最后

以上就是怕孤单小鸽子为你收集整理的npm,yarn,cnpm,pnpm的区别的全部内容,希望文章能够帮你解决npm,yarn,cnpm,pnpm的区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部