我想问一下您最喜欢JS的软件包管理器是什么?我看到了一些关于yarn和npm的文章。但是我不确定有什么对我更好。我刚刚开始学习JS。
现在,yarn和npm之间的差异对我来说就像可乐品牌之间的差异。
有时候我们只有一个,npm
但是解决依赖性和缓存问题太多,以至于另一个工具诞生了(yarn
)。通常,它使用本地缓存来解决依赖关系,例如,在运行几乎总是在同一环境中运行的CI作业时,这非常关键,并且当您为云服务中的数据付费时,高带宽非常昂贵。这意味着在旧npm
版本中,当您奔跑npm install
而让部
请理解,它们yarn
是基于npm
软件包和https://www.npmjs.com/的顶部构建的,这意味着它们都使用NPM
注册表来解析软件包。因此,如果您跑步npm install lodash@1.0.0.
或yarn add lodash@1.0.0.
将获得非常相同的结果
react@16.0.0
在每个新版本中,两个依赖项都再次从Internet下载。Yarn
yarn.lock
在下面使用,它与您的package.json
文件进行比较,yarn.lock
并确定需要额外获取哪些软件包以仅增量安装新的依赖项
yarn
提供不依赖线程的软件包的并行安装。可以将安装时间从npm install
如之前所述,在每次安装后都会yarn
生成yarn.lock
并保留已安装软件包的所有版本(您可能知道软件包可以具有依赖关系,并且依赖关系也可以具有自己的依赖关系),因此它可以建立无限的依赖关系树,从而导致非常严重的冲突。让我们想象一下这种情况
- lodash^1
- super_module@0.0.1
- - lodash@1.0.0
- another_module@0.0.01
- - lodash@1.x.x
想象一下一个场景,当维护者another_module
决定将破折号打破版本时1.2.0
,会发生的事情是,npm
在过去,可以获取同一库的2个不同实例,以及2个不同的版本,这可能导致极其奇怪的行为。因为你没有你的模块中准确锁定(你接受任何semver版本^
1.XX和^
2.xx的这样就意味着两个子模块将满足您的要求,但获取不同的版本。纱将锁定yarn.lock
在当时向该项目添加新软件包,这意味着当项目中的其他开发人员签出该项目时,他也将拥有该软件包yarn.lock
,yarn
并最终“模仿”软件包的状态(当您yarn.lock
以其他方式提交时,如何安装它们)NPM
只是希望获得满意的服务,并且可以为2个开发人员获取2个不同的版本(假设及时升级了软件包)
刚npm
发布时npm@5
,有很多工作要做,我认为所有陈述现在都只是yarn
创建WHY的原因以及当时正在解决的问题,但我认为目前为止,这两个之间的区别不大
本文向大家介绍Kafka和Flume之间的主要区别是什么?相关面试题,主要包含被问及Kafka和Flume之间的主要区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 答:Kafka和Flume之间的主要区别是: 工具类型 Apache Kafka——Kafka是面向多个生产商和消费者的通用工具。 Apache Flume——Flume被认为是特定应用程序的专用工具。 复制功能 Apache
问题内容: 网上似乎充满了Velocity和FreeMarker之间的比较,并且它们似乎相当等效。但是,StringTemplate和FreeMarker之间似乎几乎没有比较! 那么,StringTemplate和FreeMarker之间的主要区别是什么? 我对它们的用法是仅生成HTML页面。在这两种方法中,我曾期望FreeMarker更合适,功能更强大,因为这似乎是更常见的一种- 但快速浏览一下
问题内容: 创建表: 结果: 请让我知道Varchar2和char有什么区别?我们什么时候都使用? 问题答案: 显示差异的简单示例: CHAR对于字符长度始终固定的表达式很有用,例如美国各州的邮政编码,例如CA,NY,FL,TX
本文向大家介绍yarn和npm有什么区别?相关面试题,主要包含被问及yarn和npm有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 速度快 。速度快主要来自以下两个方面: 并行安装:无论 npm 还是 Yarn 在执行包的安装时,都会执行一系列任务。npm 是按照队列执行每个 package,也就是说必须要等到当前 package 安装完成之后,才能继续后面的安装。而 Yarn 是同步执行
编译器和Transpiler之间的主要区别是什么?请您提供这两方面的一些例子好吗?
问题内容: Java中的Collection和Collections之间的主要区别是什么? 问题答案: 是大多数集合类的基本接口,而是实用程序类。我建议您阅读文档。