yarn 和 npm 真的区别很大嘛

2022-07-01 18:07:46 +08:00
 Zwying

上课时老师说 yarn 是最好用的,有点半信半疑

4510 次点击
所在节点    问与答
38 条回复
foam
2022-07-01 23:21:11 +08:00
@yazoox #17 节省的主要是时间,例如原本需要 30 秒安装 node_module ,用 pnpm 可能只要 5 秒。
缓解了我的暴脾气
DOLLOR
2022-07-01 23:22:21 +08:00
node_modules 只有安装的时候会变化,而构建、开发的时候并不会变化。

作为开发者,挺喜欢每个项目自带一个 node_modules ,这样的好处是,安装好后直接打包一个 node_modules.7z 。
随便换一台电脑都能 3 分钟解压,立刻恢复所有依赖,不需要再次安装。
dcsuibian
2022-07-01 23:27:03 +08:00
前端包管理器是真的垃圾,一言不合就整个新库新工具,割裂。
npm / yarn / pnpm ,后两者纯粹是为了解决快的问题,为什么不能给 npm 来个版本升级呢?
nrm / cyarn / cnpm / cpnpm ,就是换源,不会调设置项?

以前我还会给人推荐 yarn ,现在我建议直接 npm 。别跟他们瞎折腾。
gouflv
2022-07-02 00:26:04 +08:00
别信你这什么老师,误人子弟
daliusu
2022-07-02 00:40:25 +08:00
yarn 和 npm 我倒觉得没太大区别,npm5 还是几之后已经提升挺快了,而且这个主要影响感觉还是梯子。提升比较大的是 pnpm ,这个甚至可能你要重新装半天依赖
ecnelises
2022-07-02 00:40:40 +08:00
pnpm 在 Mac 上好像已经不是用硬链接了,而是直接 clone 文件( https://github.com/pnpm/pnpm/issues/1505 ),因为 APFS 有 CoW 机制,所以硬盘上实际只存一份,改动某个文件不会影响其他版本
GeruzoniAnsasu
2022-07-02 01:04:04 +08:00
npm cnpm pnpm 都遇到过依赖装不上的破问题
选 yarn 是因为暂时没遇到幺蛾子

贵生态圈是真的一言难尽
Trim21
2022-07-02 01:17:31 +08:00
不写大型 JS 项目。yarn 比 npm 麻烦的地方在于 yarn 装新包的时候就算不影响 node_modules 里面某个可执行文件原本的依赖,也得关掉程序装完了再重启。但是 npm 就无所谓。
Vegetable
2022-07-02 03:26:26 +08:00
没有历史包袱的话,直接用最新最流行的技术就好了。pnpm 不会错的。
Biwood
2022-07-02 08:41:27 +08:00
每家公司业务场景、开发模式不同,老老实实用 npm 完全没问题。真到问题多了,你自然会开始尝试别的东西。

前端开发最大的问题就是发展快,工具多,很多人喜欢跟风,凭感性做判断,甚至可能捡了芝麻丢了西瓜。你得明白这是做技术,讲究逻辑、实用,而不是去餐厅点菜。
lmoon
2022-07-02 12:19:49 +08:00
都是垃圾,我用 pnpm
binhb
2022-07-02 14:25:57 +08:00
感觉 yarn 确实快一点
反正,有问题就是 yarn npm 混着试
不过,我现在新项目都是用 pnpm
encro
2022-07-02 16:51:54 +08:00
昨天一个 vue3 项目,

npm: 安装完成,运行报依赖的项目代码错误;

yarn:请使用 nodejs 14 以后版本。


所以,用 npm 发现依赖错误的时候,不妨试试 yarn 。
Bingchunmoli
2022-07-02 17:21:56 +08:00
早期使用的时候特别大,现在不够明显了,之前 npm i 然后 error 看不懂,yarn 要是 securess 要么一行英文翻译一下就知道是什么错误了
Showfom
2022-07-02 19:12:38 +08:00
nodejs 16 开始已经自带 yarn 了
luohechen
2022-07-04 10:24:24 +08:00
@LiuJiang 其实 yarn 的 barry 版本或者最新的 3 还是和 npm 差别很大的,默认是 1.x 版本
luohechen
2022-07-04 10:28:19 +08:00
@DOLLOR yarn 2.x 以上版本是这样的,装包的时候在 node_modules 里面下载的是压缩包,然后编译的时候会按需展开,这些压缩包可以直接传到 github
SekiBetu
2022-07-22 05:33:33 +08:00
装 corepack ,通过 `corepack prepare 管理器 @版本 --activate` 来切换版本用,corepack 默认在新版 nodejs 内置, `corepack enable` 即可开启,默认内置了 npm 、yarn 、pnpm ,nodejs 未来的大趋势就是解耦,不再内置 npm ,让 corepack 发挥包管理器功能,corepack 命令成为默认的"npm"来切换三个包管理器

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/863504

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX