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

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

主流的前端包管理工具有 npmyarnpnpm、以及国内的镜像 cnpmtyarn 等,这是包管理器都是基于 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 并非扁平结构,因此代码不能对任意软件包进行访问
相关推荐
To_OC5 小时前
LC 131 分割回文串:刚学回溯时,我连怎么切字符串都想不明白
javascript·算法·leetcode
咩咩啃树皮6 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
阳光是sunny6 小时前
LangGraph中的Reducer是什么
前端·人工智能·后端
触底反弹6 小时前
一文搞懂 Tailwind CSS 弹性布局:从原理到实战
前端·css·html
阳光是sunny6 小时前
从链到图:LangGraph 入门基础全解析
前端·人工智能·后端
To_OC7 小时前
LC 42 接雨水:暴力超时卡半天?前后缀数组一用就通了
javascript·算法·leetcode
小林ixn7 小时前
从 ??= 到 onKeyDown:一个 React 组件的“自我修养”
前端·javascript·react.js
REDcker7 小时前
显示分辨率标准对照详解
前端·网络·分辨率·显示·屏幕
এ慕ོ冬℘゜8 小时前
前端实战:jQuery 多条件联合搜索(标题模糊查询 + 日历时间段筛选)
前端·javascript·jquery
武子康8 小时前
Search Console Platform Properties 扩大 SEO 资产边界:从 Page Ranking 到 Topic Coverage(5 类误读边界 + 3 表数据层设计)
前端·人工智能·后端