当前位置: 首页 > 面试题库 >

yarn和npm有什么区别?

夏才
2023-03-14
本文向大家介绍yarn和npm有什么区别?相关面试题,主要包含被问及yarn和npm有什么区别?时的应答技巧和注意事项,需要的朋友参考一下

速度快 。速度快主要来自以下两个方面:
并行安装:无论 npm 还是 Yarn 在执行包的安装时,都会执行一系列任务。npm 是按照队列执行每个 package,也就是说必须要等到当前 package 安装完成之后,才能继续后面的安装。而 Yarn 是同步执行所有任务,提高了性能。
离线模式:如果之前已经安装过一个软件包,用Yarn再次安装时之间从缓存中获取,就不用像npm那样再从网络下载了。

安装版本统一:为了防止拉取到不同的版本,Yarn 有一个锁定文件 (lock file) 记录了被确切安装上的模块的版本号。每次只要新增了一个模块,Yarn 就会创建(或更新)yarn.lock 这个文件。这么做就保证了,每一次拉取同一个项目依赖时,使用的都是一样的模块版本。npm 其实也有办法实现处处使用相同版本的 packages,但需要开发者执行 npm shrinkwrap 命令。这个命令将会生成一个锁定文件,在执行 npm install 的时候,该锁定文件会先被读取,和 Yarn 读取 yarn.lock 文件一个道理。npm 和 Yarn 两者的不同之处在于,Yarn 默认会生成这样的锁定文件,而 npm 要通过 shrinkwrap 命令生成 npm-shrinkwrap.json 文件,只有当这个文件存在的时候,packages 版本信息才会被记录和更新。

更简洁的输出:npm 的输出信息比较冗长。在执行 npm install 的时候,命令行里会不断地打印出所有被安装上的依赖。相比之下,Yarn 简洁太多:默认情况下,结合了 emoji直观且直接地打印出必要的信息,也提供了一些命令供开发者查询额外的安装信息。

多注册来源处理:所有的依赖包,不管他被不同的库间接关联引用多少次,安装这个包时,只会从一个注册来源去装,要么是 npm 要么是 bower, 防止出现混乱不一致。

更好的语义化: yarn改变了一些npm命令的名称,比如 yarn add/remove,感觉上比 npm 原本的 install/uninstall 要更清晰。

 类似资料:
  • 本文向大家介绍npm i和npm install有什么区别?相关面试题,主要包含被问及npm i和npm install有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 用npm i安装的模块无法用npm uninstall删除,用npm uninstall i才卸载掉 npm i会帮助检测与当前node版本最匹配的npm包版本号,并匹配出来相互依赖的npm包应该提升的版本号 部分npm包在

  • 问题内容: 我想问一下您最喜欢JS的软件包管理器是什么?我看到了一些关于yarn和npm的文章。但是我不确定有什么对我更好。我刚刚开始学习JS。 现在,yarn和npm之间的差异对我来说就像可乐品牌之间的差异。 问题答案: 有时候我们只有一个,但是解决依赖性和缓存问题太多,以至于另一个工具诞生了()。通常,它使用本地缓存来解决依赖关系,例如,在运行几乎总是在同一环境中运行的CI作业时,这非常关键,

  • 问题内容: 和之间的根本区别是什么?只需要简单明了的东西。我已经看到一些同事在他们的项目中使用和互换使用。 问题答案: 所有程序包管理器都有许多缺点。您只需要选择可以与之共存的地方即可。 History npm开始管理node.js模块(这就是默认情况下会放入软件包的原因),但是当与Browserify或webpack结合使用时,它也适用于前端。 Bower是专门为前端创建的,因此考虑到了优化。

  • 问题内容: 和之间有什么区别? 我在项目中注意到,有时npm在执行时会开始失败,但是在运行时,它可以正常工作。 如何这两个目标的内部运作,即与不同? 问题答案: 将依赖项安装到您正在处理的节点项目的目录中。您可以调用另一个node.js项目(模块),以将其安装为项目的依赖项。 是的别名,除非您在package.json文件中指定“ build”的作用,否则它什么都不做。它使您可以在将其用于另一个项

  • 我正在使用持续集成,并发现了npm ci命令。 我不知道对我的工作流使用此命令有什么好处。 更快吗?这会让考试变得更难吗,好吗,然后呢?

  • 问题内容: 最近,我尝试使用Yarn安装Node软件包。它运作良好,并且比NPM快得多。纱线自动生成。我们已经有NPM收缩包装()。 它们之间有什么区别吗?是否有过NPM-shrinkwrap.json什么优势? 问题答案: 该文件与其他程序包管理器的锁定文件非常相似,尤其是Rust的Cargo程序包管理器具有。这些锁定文件的想法是代表一组始终有效的软件包。 将依赖关系范围存储在文件中,这意味着当