包管理器 | 浅谈几个常用的包管理工具

这篇具有很好参考价值的文章主要介绍了包管理器 | 浅谈几个常用的包管理工具。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

🖥️ 前言

◼️ npm

◼️ cnpm

◼️ yarn

◼️ pnpm

◼️ Bower

🖥️ 参考文献 

🖥️ 参考资料


包管理器 | 浅谈几个常用的包管理工具,Node.js学习笔记,npm,yarn,pnpm,包管理器,bower,cnpm,包管理工具

包管理器 | 浅谈几个常用的包管理工具,Node.js学习笔记,npm,yarn,pnpm,包管理器,bower,cnpm,包管理工具  

🖥️ 前言

如果你是前端开发者,或多或少都会接触到一些包管理工具,包管理工具是用于持续自动化程序的集合,例如安装、升级、配置和删除程序。使用包管理工具可以为前端开发解决很多问题,提高开发效率。

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

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

◼️ npm

NPM是Node.js的包管理器工具,是js开发人员共享打包的代码模块,是前端web应用程序等的开放源代码包的公共集合,npm也是命令行客户端开发人员用来安装和发布这些软件包的工具,npm,Inc.是负责托管和维护上述所有内容的公司。

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

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

缺点:

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

◼️ cnpm

cnpm 是阿里巴巴推出的包管理工具,安装之后默认会使用 https://registry.npmmirror.com 这个镜像源。cnpm支持所有npm 命令,它的安装命令和 npm 基本一致,通过 cnpm i 或者 cnpm install 命令来安装插件,当然在使用 `cnpm 前必须先通过npm安装。参考:浅谈npm、yarn、cnpm、pnpm

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

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

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

◼️ yarn

yarn是安装和共享代码的软件包管理工具,也是项目管理工具,无论是小型项目还是大型单体仓库(monorepos),无论是业余爱好者,还是企业用户,Yarn都能满足需求。。它可以通过插件扩展,稳定,有很好的文档记录,免费和开源。yarn 是经过重新设计的崭新的 npm 客户端,它能让开发人员并行处理所有必须的操作,并添加了一些其他改进。运行速度得到了显著的提升,整个安装时间也变得更少。

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

缺点:

  • 存在幽灵依赖。

  • 提升的依赖依然复制多份的问题。

优点:

  • 运行速度获得了显著的提高,整个安装时间也变得更少

  • 像npm一样,yarn使用本地缓存。与npm不一样的是,yarn无需互联网链接就能安装本地缓存的依赖项,它提供了离线模式。这个功能在2012年的npm项目中就被提出来过,但一直没有实现。

  • 容许合并项目中使用到的全部的包的许可证

注意:yarn解决npm在某些方面的缺陷,并改进了速度和安全性等方面。如果你需要一个快速、高效且安全的包管理工具,并且你的项目相对较小,则应该使用yarn。

小结yarn特性


1. 安装速度非常快,因为它可以并行下载和安装依赖包。

2. 支持离线安装,即使没有网络连接也能安装依赖包

3. 内置良好的安全检查功能,可以避免安全风险。

4. 与npm相比,yarn可以更准确地确定依赖关系,从而避免版本冲突问题。

5. 对于少数的一些依赖包,可能会出现兼容性问题。

6. 在某些情况下,与npm不兼容。

◼️ pnpm

pnpm 是一个速度快、磁盘空间大的软件包管理器。pnpm 使用内容可寻址文件系统将所有模块目录中的所有文件存储在磁盘上。使用 npm 或 Yarn 时,如果你有 100 个项目使用 lodash,则磁盘上将有 100 个 lodash 副本。使用 pnpm,lodash 将存储在内容可寻址的存储中。

起源:是 2017 年发布的一款替代 npm 包管理工具,具有速度快、节省磁盘空间的特点。它的大部分功能与npm相同,由于其特殊的工作机制,它可以极大地提高包安装和卸载的速度。

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

优点:

  • pnpm运行起来非常的快,超过了npm和yarn
  • pnpm采用了一种巧妙的方法,利用硬链接和符号链接来避免复制所有本地缓存源文件,这是yarn的最大的性能弱点之一
  • pnpm继承了yarn的所有优点,包括离线模式和确定性安装
  • pnpm 内置了对单个源码仓库中包含多个软件包的支持
  • pnpm 创建的 node_modules 并非扁平结构,因此代码不能对任意软件包进行访问

注:pnpm解决了yarn存在的问题。 如果你需要一个可靠且稳定的包管理工具,并且你的项目是大型的企业级应用程序,则应使用npm或者pnpm

小结:pnpm特性

  • 快速。比替代方案快 2 倍(参见基准测试)
  • 高效。node_modules 内的文件是由一个可寻址的内容存储空间链接的。
  • 非常适合 monorepos。
  • 严格。一个包只能访问其 package.json 中指定的依赖关系。
  • 确定性的。有一个名为 pnpm-lock.yaml 的 lockfile。
  • 在任何地方都适用。支持 Windows、Linux 和 macOS。
  • 久经沙场。自 2016 年以来被各种规模的团队在生产中使用。

◼️ Bower

Bower是一个客户端技术的软件包管理器,基于nodejs的静态资源管理工具。它可用于搜索、安装和卸载如JavaScript、HTML、CSS之类的网络资源,Bower管理的基本上都是前端工程师使用的东东。它擅长前端的包管理,通过其API展示了包依赖模型。使得项目不存在系统级的依赖,不同的应用程序间也不会共享依赖,整个依赖树是扁平的。

起源: Bower 是 twitter 推出的一款包管理工具,基于nodejs的模块化思想,把功能分散到各个模块中,让模块和模块之间存在联系,通过 Bower 来管理模块间的这种联系,其主要作用就是:为模块的安装、升级和删除,提供一种统一的、可维护的管理模式。

优点:约束松散,使用简单,可用模块众多

缺点:特点是对包结构没有强制规范,也因此bower本身并没有提供一套构建工具(当前应该能从社区中找到针对bower的构建工具),它充当的基本上是一个静态资源的共享平台。另外,直接在bower上安装模块稳定性难以保证(源的稳定性,以及国内网速的稳定性)。

不过如果是公司级别内部使用的话,结合公司本身的git仓库,并创建一个私有的bower server,并定制一套规范和打包工具,也是可行的。(好吧,这是我之前考虑过的在我厂内部实施的方案)

​bower本身不存储模块文件本身(NPM以及SPM则会将模块作者的文件打包保存在自己的服务器中),也不保存模块的版本信息。模块的发布者通过注册(register)的方式,将模块的可访问的公开的git地址记录在bower的数据库中。而所有的版本都是通过模块发布者自己控制代码库的tag来决定的 。来源:npm,spm,bower 这三个包管理器的比较

更多参考:Web前端开发工具——bower依赖包管理工具 | Bower 网页 Web 开发软件包管理器

🖥️ 参考文献 

[1] npm中文文档 | npm中文网

[2] cnpm - npm 

[3] Home | Yarn - JavaScript 软件包管理器 | Yarn中文文档 - Yarn中文网

[4] pnpm - 速度快、节省磁盘空间的软件包管理器 | pnpm中文文档 | pnpm中文网

🖥️ 参考资料

软件包管理系统知多少 | 包管理工具,代码压缩编译等工具

rpm/yum/npm包管理器区别以及常用命令 | 常用软件包rpm/yum/npm区别

yum和apt-get包管理工具 | yum包管理工具详解 | 扒扒包管理器:Bower、Browserify、Duo

包管理器 | 浅谈几个常用的包管理工具,Node.js学习笔记,npm,yarn,pnpm,包管理器,bower,cnpm,包管理工具文章来源地址https://www.toymoban.com/news/detail-537784.html

到了这里,关于包管理器 | 浅谈几个常用的包管理工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java】YAML读写常用工具包及使用示例

    YAML是一种常用的数据序列化格式,在Java应用程序中读写YAML数据是常见的任务。本文介绍了三个受欢迎的Java工具包:SnakeYAML、Jackson Dataformat YAML和YAMLBeans,它们都提供了读写YAML数据的功能。本文将逐一介绍这些工具包的特点、Maven依赖配置,并给出使用示例。最后,本文总结

    2024年02月04日
    浏览(38)
  • 极域工具包 1.0正式发布!一键杀极域!完美破解学生机房管理助手

    原理都在这https://blog.csdn.net/weixin_42112038/article/details/125346545 话不多说,上截图! 这个电脑没有装极域,所以没有把密码破解出来,但是亲测2010版以上可破解 支持关闭6.8-7.2版本的学生机房管理助手,快捷键 Shift + K 。 支持不依赖 taskkill 、 ntsd 等工具杀掉极域。 学生机房管理

    2024年02月04日
    浏览(36)
  • 极域工具包 1.1正式发布!窗口化极域,解键盘锁,适配学生机房管理助手7.4-7.5!

    原理:https://blog.csdn.net/weixin_42112038/article/details/125346545 截图: 支持杀掉学生机房管理助手7.4/7.5 窗口化/全屏化极域广播 挂起(冻结)/恢复极域 极域未运行时可启动极域,降权到登录用户(路径来自注册表) 显示极域存活状态:未运行/正常运行/已挂起 + PID 增加鼠标右上角

    2024年02月05日
    浏览(57)
  • Spring第三课,Lombok工具包下载,对应图书管理系统列表和登录界面的后端代码,分层思想

    目录 一、Lombok工具包下载 二、前后端互联的图书管理系统 规范  三、分层思想 三层架构: 1.表现层 2.业务逻辑层 3.数据层 这个工具包是为了做什么呢? 他是为了不去反复的设置setting and getting 而去产生的工具包 ⚠️工具包下载:推荐不要下载太新的(较高的),也不要太

    2024年02月05日
    浏览(27)
  • 仪酷LabVIEW AI视觉工具包及开放神经网络交互工具包常见问题解答

    哈喽,各位朋友,好久不见~ 之前给大家分享了基于LabVIEW开发的AI视觉工具包及开放神经网络交互工具包,不少朋友私信说在安装和使用过程中会遇到一些问题,今天我们就集中回复一下大家问到最多的问题。如果大家在使用过程中还有其他问题,可以补充到评论区,我们这

    2024年02月16日
    浏览(54)
  • GIS工具包

    GIS工具包,根据jts工具,结合实际使用场景提取出来的常用工具集合;涵盖几何格式转换(WKT,GeoJSON等)与geometry转换、gis距离计算、度距离单位换算、角度计算、buffer运算、映射截取、几何穿串等操作 gis-tools源码库地址 1.1 WktTool使用说明 wkt格式与geometry互转; wkt转geometry操作

    2024年02月06日
    浏览(64)
  • 学习笔记-JVM-工具包(JVM分析工具)

    常用工具 JDK工具 ① jps: JVM Process status tool:JVM进程状态工具,查看进程基本信息 ② jstat: JVM statistics monitoring tool : JVM统计监控工具,查看堆,GC详细信息 ③ jinfo:Java Configuration Info :查看配置参数信息,支持部分参数运行时修改 ④ jmap:Java Memory Map :分析堆内存工具,du

    2024年02月13日
    浏览(49)
  • MATLAB添加工具包(详细)

    我这里要添加的文件包为:DeepLearnToolbox-master 我这里的安装目录是:D:softwareMATLABtoolbox (1)以中文版为例,在主界面找到“设置路径”按钮 (2)点击“设置路径”,弹出设置界面 第一步:点“添加文件夹” (注:如果要工具包中有多个子文件夹,则点“添加并包含子文

    2024年02月02日
    浏览(61)
  • 【Linux】基本开发工具包使用

    目录 一, yum ——linux软件包管理器  1. 软件包是啥子?  2.  yum基本使用  1. 步骤:  2. 开发工具推荐(centos 7.6) 二,vim —— linux文本编辑器 1. Normal mode  ——  命令模式(记不住没关系,多练就行) 2.  last line  mode——   末行模式 (如何进入;shift :) 3. Insert mode ——插

    2024年02月08日
    浏览(63)
  • Windows11渗透工具包分享

              项目地址 下载地址

    2024年02月13日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包