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

前言:相信很多刚学习包管理工具的同学都说从认识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 并非扁平结构,因此代码不能对任意软件包进行访问
相关推荐
万少4 小时前
HarmonyOS 开发必会 5 种 Builder 详解
前端·harmonyos
橙序员小站6 小时前
Agent Skill 是什么?一文讲透 Agent Skill 的设计与实现
前端·后端
炫饭第一名8 小时前
速通Canvas指北🦮——基础入门篇
前端·javascript·程序员
NineData9 小时前
数据库迁移总踩坑?用 NineData 迁移评估,提前识别所有兼容性风险
数据库·程序员·云计算
王晓枫9 小时前
flutter接入三方库运行报错:Error running pod install
前端·flutter
符方昊9 小时前
React 19 对比 React 16 新特性解析
前端·react.js
ssshooter9 小时前
又被 Safari 差异坑了:textContent 拿到的值居然没换行?
前端
曲折9 小时前
Cesium-气象要素PNG色斑图叠加
前端·cesium
Forever7_9 小时前
Electron 淘汰!新的桌面端框架 更强大、更轻量化
前端·vue.js
Angelial9 小时前
Vue3 嵌套路由 KeepAlive:动态缓存与反向配置方案
前端·vue.js