yarn
Yarn Workspace
- yarn workspace是yarn的内置功能
- yarn workspace可以共享
node_modules - 在package.json设置workspaces字段
"workspaces": [
"packages/*"
]
Yarn的优点
相比npm的优点:
1、速度快 。速度快主要来自以下两个方面:
- 并行安装:无论 npm 还是 Yarn 在执行包的安装时,都会执行一系列任务。npm 是按照队列执行每个 package,也就是说必须要等到当前 package 安装完成之后,才能继续后面的安装。而 Yarn 是同步执行所有任务,提高了性能。
- 离线模式:如果之前已经安装过一个软件包,用Yarn再次安装时之间从缓存中获取,就不用像npm那样再从网络下载了。
2、更好的语义化, yarn改变了一些npm命令的名称,比如 yarn add/remove,感觉上比 npm 原本的 install/uninstall 要更清晰。
3、更简洁的输出
npm和yarn的区别
- yarn采用了请求队列,类似并发池连接,能够更好的利用网络资源,同时引入了安装失败的重试机制
- 都存在幽灵依赖问题
npm和yarn都采用了铺平方案,有什么问题吗
1、幽灵依赖问题
-
幽灵依赖问题,造成了非法访问
-
幽灵依赖 就是在依赖里没有声明,但在代码里却可以引入 【如果 A 依赖 B, B 依赖 C,那么 A 当中是可以直接使用 C 的】
- 这种非法访问,是有隐患的,万一哪天别的包不依赖了这个包,你却引入了这个包,就会导致报错
2、一个包多版本问题
- 依赖包多个版本的时候,只会提升一个,其余的版本也还是会复制很多次,导致浪费磁盘空间
- 提升一个,就是说这个包会提升到顶层目录中,其余包的版本还是以嵌套的方式复制
- 所以就有了pnpm,pnpm就解决了这个问题