npm和yarn的区别
yarn和npm的对比
-
速度
npm 是按照队列执行每个 package,也就是说必须要等到当前 package 安装完成之后,才能继续后面的安装。 而 Yarn 是同步执行所有任务,提高了性能。
-
安装版本统一
Yarn 默认会生成这样的锁定文件 npm 要通过 shrinkwrap 命令生成 npm-shrinkwrap.json 文件,只有当这个文件存在的时候,packages 版本信息才会被记录和更新。 npm5.0之后新增了类似yarn.lock的 package-lock.json。如果软件包的根目录中同时存在package-lock.json和npm-shrinkwrap.json或者 yarn.lock,将以npm-shrinkwrap.json
package-lock.json,yarn.lock的顺序执行。
-
更简洁的输出
npm 的输出信息比较冗长。在执行 npm install <package> 的时候,命令行里会不断地打印出所有被安装上的依赖。 Yarn 简洁太多:默认情况下,结合了 emoji直观且直接地打印出必要的信息,也提供了一些命令供开发者查询额外的安装信息。
pnpm
pnpm 引入了另一套依赖管理策略:内容寻址存储。
该策略会将包安装在系统的全局 store 中,依赖的每个版本只会在系统中安装一次。解决了yarn和npm未解决的重复安装问题。
参考:https://www.jianshu.com/p/254794d5e741
https://zhuanlan.zhihu.com/p/526257537