首页 > 其他分享 >包管理工具-Yarn

包管理工具-Yarn

时间:2023-09-26 22:44:44浏览次数:36  
标签:npm 依赖 管理工具 yarn Yarn 控制台 目录 下载

yarn 简介

yarn 官网:https://www.yarnpkg.com/zh-Hans/

yarn 是由Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具,它仍然使用 npm 的registry,不过提供了全新 CLI 来对包进行管理

过去,yarn 的出现极大的抢夺了 npm 的市场,甚至有人戏言,npm 只剩下一个 registry 了。

之所以会出现这种情况,是因为在过去,npm 存在下面的问题:

  • 依赖目录嵌套层次深:过去,npm 的依赖是嵌套的,这在 windows 系统上是一个极大的问题,由于众所周知的原因,windows 系统无法支持太深的目录
  • 下载速度慢
    • 由于嵌套层次的问题,所以npm对包的下载只能是串行的,即前一个包下载完后才会下载下一个包,导致带宽资源没有完全利用
    • 多个相同版本的包被重复的下载
  • 控制台输出繁杂:过去,npm 安装包的时候,每安装一个依赖,就会输出依赖的详细信息,导致一次安装有大量的信息输出到控制台,遇到错误极难查看
  • 工程移植问题:由于 npm 的版本依赖可以是模糊的,可能会导致工程移植后,依赖的确切版本不一致。

针对上述问题,yarn 从诞生那天就已经解决,它用到了以下的手段:

  • 使用扁平的目录结构
  • 并行下载
  • 使用本地缓存
  • 控制台仅输出关键信息
  • 使用yanr-lock文件记录确切依赖

不仅如此,yarn还优化了以下内容:

  • 增加了某些功能强大的命令
  • 让既有的命令更加语义化
  • 本地安装的CLI工具可以使用 yarn 直接启动
  • 将全局安装的目录当作一个普通的工程,生成package.json文件,便于全局安装移植

yarn 的出现给 npm 带来了巨大的压力,很快,npm 学习了 yarn 先进的理念,不断的对自身进行优化,到了目前的npm6版本,几乎完全解决了上面的问题:

  • 目录扁平化
  • 并行下载
  • 本地缓存
  • 使用package-lock记录确切依赖
  • 增加了大量的命令别名
  • 内置了npx,可以启动本地的CLI工具
  • 极大的简化了控制台输出

总结

npm6 之后,可以说npm已经和yarn非常接近,甚至没有差距了。很多新的项目,又重新从yarn转回到npm。

这两个包管理器是目前的主流,都必须要学习。

标签:npm,依赖,管理工具,yarn,Yarn,控制台,目录,下载
From: https://www.cnblogs.com/bingquan1/p/17731448.html

相关文章

  • 日志采集管理工具选型对比
    一、FilebeatFilebeat是用于转发和集中日志数据的轻量级传送程序。作为服务器上的代理安装,Filebeat监视您指定的日志文件或位置,收集日志事件,并将它们转发到Elasticsearch或Logstash进行索引。Filebeat的工作方式如下:启动Filebeat时,它将启动一个或多个输入,这些输入将在为日志数据指......
  • Flink的部署模式:Local模式、Standalone模式、Flink On Yarn模式
    Flink部署、执行模式Flink的部署模式Local本地模式、Standalone模式和FlinkonYARN模式是Flink的三种常见部署模式。1.Local本地模式:在本地模式下,Flink以单机模式运行,无需启动分布式资源管理器。这种模式适用于本地开发和测试,用于验证Flink代码的正确性和性能。2.Standalon......
  • Linux运维指南丨5种Linux安装包管理工具中文手册
    本篇介绍常见Linux操作系统的安装包管理工具,主要介绍其使用命令。包管理系统除了安装软件外,它还提供了工具来更新已经安装的包。包存储库有助于确保你系统中使用的代码是经过审查的,并且软件的安装版本已经得到了开发人员和包维护人员的认可。dpkgUbuntu、Debian......
  • 【Yarn】Yarn 命令详解
    https://blog.csdn.net/qq_21383435/article/details/108719953https://www.jianshu.com/p/175a4d0cda44......
  • MySQL高级13-MySQL管理工具
    一、系统数据库MySQL数据库安装完成后,自带了四个数据库:mysql数据库:存储MySQL服务器正常运行所需要的各种信息如时区、主从、用户、权限等infomation_schema:提供了访问数据库元数据的各种表和视图,包含数据库、表、字段类型及访问权限等performance_schema:为MySQL服务器运......
  • gitlab-代码管理工具的离线安装部署
    gitlab-代码管理工具的离线安装部署最低安装条件:资源最低限度推荐CPU2核4核内存4GB8GB解决安装依赖yum-yinstallpolicycoreutilsopenssh-serveropenssh-clientspostfixpolicycoreutils-pythongitlab的rpm包下载开始rpm安装[root@localhost~......
  • yarn 出现 【 info There appears to be trouble with your network connection. Retr
    第一种解决方案#调整为taobao镜像源yarnconfigsetregistryhttps://registry.npm.taobao.org我用了没用,可以试试第二种解决方案要在项目根目录下创建后缀名为.yarnrc的文件,并设置network-timeout的值为600000,你可以按照以下步骤进行操作:打开文本编辑器,例如Note......
  • 有没有一款让人爱不释手的知识库工具?知识库管理工具不难选!
    对于企业来说,因为其本身的业务需求、外部各类标准规范的要求、数字化转型趋势带来的便利,使得更多的企业开始自主搭建知识库,开始试图通过知识管理去提升组织的效率和创新能力。虽然说市面上有不少关于知识笔记的管理工具,比如有道云、幕布、印象笔记、Typora,甚至也有人将笔记存放在gi......
  • yarn install error node-sass: Command failed.
    运行yarninstall报错,如下图:运行npminstall也报错,如下图:如果发生上诉的错误,建议优先考虑是node.js的版本问题我的node.js版本是16,卸载16,安装14版本,运行不再报错......
  • K8s kubectl管理工具使用技巧
    kubectl是K8s官方附带的命令行工具,可以方便的操作K8s集群.这篇文章主要介绍一些kubectl的别样用法,希望读者有基础的K8s使用经验.打印当前使用的API#kubectl的主要作用就是与ApiServer进行交互,而交互的过程,我们可以通过下面的方式来打印,#这个命令尤其适合调试自己的a......