前端开发项目中怎么选择合适的包管理工具?

前言:相信很多刚学习包管理工具的同学都说从认识npm开始的,但是其他的包管理工具你都用过哪些,都知道它们的优缺点吗?今天就和大家一起探讨一下!

主流的前端包管理工具有 npm、yarn、pnpm、以及国内的镜像 cnpm、tyarn 等,这是包管理器都是基于 nodejs。

npm

起源:npm 是 2010 年发布的 nodejs 依赖管理工具,在此之前,前端的依赖管理都是手动下载和管理的。

优点:npm是一个成熟、稳定、并且有趣的包管理器。提供了一个非常有用的解决方案,支持大量的测试用例

缺点:

  • 下载速度慢
  • 安装速度慢
  • 下载版本不一致

注:npm5改进 与yarn相差不大

cnpm

起源:国内使用npm下载太慢了,所以淘宝提供了镜像cnpm访问。

优点:跟npm使用区别不大,npm是国外站点资源,cnpm是国内站点资源,当然国内站点的要快一点。

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

yarn

起源:yarn 是 Facebook 于 2016 年 发布的替代 npm 的包管理工具,还可以作为项目管理工具,定位是快速、可靠、安全的依赖管理工具。

缺点:

  • 存在幽灵依赖。
  • 提升的依赖依然复制多份的问题。

优点:

  • 运行速度获得了显著的提高,整个安装时间也变得更少
  • 像npm同样,yarn使用本地缓存。与npm不一样的是,yarn无需互联网链接就能安装本地缓存的依赖项,它提供了离线模式。这个功能在2012年的npm项目中就被提出来过,但一直没有实现。
  • 容许合并项目中使用到的全部的包的许可证

注:pnpm解决了yarn存在的问题。

pnpm

起源:是 2017 年发布的一款替代 npm 包管理工具,具有速度快、节省磁盘空间的特点。

缺点:对老旧存量项目迁移pnpm可能需要踩坑

优点:

  • pnpm运行起来非常的快,超过了npm和yarn
  • pnpm采用了一种巧妙的方法,利用硬链接和符号链接来避免复制所有本地缓存源文件,这是yarn的最大的性能弱点之一
  • pnpm继承了yarn的所有优点,包括离线模式和确定性安装
  • pnpm 内置了对单个源码仓库中包含多个软件包的支持
  • pnpm 创建的 node_modules 并非扁平结构,因此代码不能对任意软件包进行访问
相关推荐
一木 之林14 分钟前
LangChain 第6章 Agent 智能体核心:create_agent 统一入口与 ReAct 循环
前端·react.js·langchain
不可能片场33 分钟前
Electron 发布进程被回收 用脱离进程组托住
前端·electron
kaixin_learn_qt_ing40 分钟前
hexdump -C /path/to/binary | less 看十六进制内容
前端·css·less
楠风测开40 分钟前
Linux 监控告警 + AI 智能监控
程序员
java1234_小锋41 分钟前
【技术专题】HTML5 网页技术 - HTML5 链接与图片
前端·html·html5
sun_weitao44 分钟前
Chrome 扩展插件开发指南
前端·javascript·chrome
小马不起床1 小时前
零基础玩转 FastAPI_12:前端详情增强与角色权限分配
前端·状态模式·fastapi
labview_自动化1 小时前
cvat部署记录
javascript·labview
前端snow1 小时前
ai agent --- 切割文件 RecursiveCharacterTextSplitter
前端
松就是我902981 小时前
可编辑 PPT:调研、设计与实施方案
前端