浅谈常用的包管理工具有哪些

简介: 浅谈常用的包管理工具有哪些

前言:相信很多刚学习包管理工具的同学都说从认识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 并非扁平结构,因此代码不能对任意软件包进行访问

相关文章
|
1月前
|
Linux
RPM 管理软件包的依赖关系
RPM 管理软件包的依赖关系
|
1月前
包管理工具——npm实用教程 (修改下载源,安装依赖 -D -S -g ,卸载依赖等)
包管理工具——npm实用教程 (修改下载源,安装依赖 -D -S -g ,卸载依赖等)
33 0
|
3月前
|
JavaScript 前端开发 API
npm 包管理工具
npm 包管理工具
71 0
|
存储 缓存 资源调度
研究一下「pnpm」这个神奇的包管理工具
研究一下「pnpm」这个神奇的包管理工具
543 0
|
9月前
|
Linux API
DNF管理软件包
DNF管理软件包
|
IDE 开发工具
R问题|如何本地安装 R 包
R问题|如何本地安装 R 包
446 0
R问题|如何本地安装 R 包
|
存储 缓存 JSON
链接、包管理工具、多包管理以及Lerna 工具的使用
本文回顾链接、包管理工具、多包管理以及Lerna 工具的使用
395 0
链接、包管理工具、多包管理以及Lerna 工具的使用
|
存储 资源调度 Windows
包管理工具
包管理工具
103 0
|
JavaScript 前端开发 Java
NPM详解!前端包管理工具
官方网站:[https://www.npmjs.com/](https://www.npmjs.com/) NPM全称Node Package Manager,是Node.js包管理工具,是全球最大的模块生态系统,里面所有的模块都是开源免费的;也是Node.js的包管理工具,相当于前端的Maven 。
|
缓存 前端开发 JavaScript
各种语言常见的包管理工具
各种语言常见的包管理工具