2022 年了, 还在用 yarn 吗?

2022-07-24 22:39:36 +08:00
 bthulu

yarn 花了这么多精力去搞 2.0,3.0 版本, 1.x 几乎停滞不前. npm 是不是已经吊打 yarn1.x 了?

11556 次点击
所在节点    JavaScript
95 条回复
wu67
2022-07-25 10:49:59 +08:00
前几年吹 yarn, 现在又吹 pnpm, 但这么多年过去了, 你看 npm 死了没?

日出东方, 唯 npm[手动狗头]
DOLLOR
2022-07-25 10:59:26 +08:00
我选择 node_modules.7z🐶
TomPig0216
2022-07-25 11:08:00 +08:00
pnpm + 1
darkengine
2022-07-25 11:17:56 +08:00
$ yarn --version
1.22.18

咋了有问题吗
bk201
2022-07-25 11:22:08 +08:00
前端真有意思,包管理都能玩出花。这些包管理区别是啥?
wangtian2020
2022-07-25 11:30:43 +08:00
还在用 npm(nrm 管理镜像),因为用了两年了暂时还没感受痛点和痒点
wolfie
2022-07-25 11:51:11 +08:00
前端娱乐圈
lin07hui
2022-07-25 11:54:41 +08:00
pnpm 不能使用包中的依赖包,如:不能使用 vue 中 @vue/runtime-core 的。要查 vue 中使用的 @vue/runtime-core 版本,再 pnpm add -D @vue/runtime-core@版本
Seanfuck
2022-07-25 11:57:49 +08:00
前端早就比 java 还折腾了,没什么要求限制的话还是 jquery 一把梭吧,给头上多留几根头发。
darkengine
2022-07-25 12:07:14 +08:00
@Seanfuck jQuery 到 vue, react, angular 还是有必要的,jquery 遇到复杂的前端逻辑维护起来要哭。至于 npm, yarn 这些工具还真不知道有啥好争的。
uni
2022-07-25 12:20:17 +08:00
好久没关注原来已经这么多人用 pnpm 了么,那感觉下次可以尝试一下了
christin
2022-07-25 12:35:06 +08:00
@dablwow
@theprimone 感谢 我试一下
pkwenda
2022-07-25 12:52:18 +08:00
非前端,pnpm 用过,感觉也就用个 install ,我也不知道爽在哪
devwolf
2022-07-25 13:23:16 +08:00
pnpm 更直观的优点——在我这边被上级指示取缔 yarn 的理由是“打包能更快”。但是项目从 yarn 迁移到 pnpm 需要做很多配置适配,这个 webpack 理解不深的应该搞不来,至少我不行,这个是我这边前端 leader 搞定的。
MAGA2022
2022-07-25 13:27:44 +08:00
pnpm 好好做包管理还行,非要弄个 node 版本管理,大包大揽,不喜欢
magicdawn
2022-07-25 13:32:15 +08:00
yarn2 用着用着出问题了, 搜 issue 也搜不到, 解决不了
切到 pnpm, 再没出过我自己解决不了的问题...
shuimugan
2022-07-25 13:32:19 +08:00
用 Node.js 写后端,习惯用 yarn 了,反正上生产都是用 pkg 打成二进制的。
magicdawn
2022-07-25 13:40:36 +08:00
关于 npm 比 pnpm 少打一个字母, 你就不会加 alias 么 :)

https://github.com/magicdawn/magicdawn/issues/48#issuecomment-1193089536

```zsh
# pnpm
alias p="pnpm"

# short
alias pt="pnpm test"
alias pd='pnpm dev'
alias pb='pnpm build'
alias pi='pnpm install'

alias pa='pnpm add'
alias pad='pnpm add -D'
alias pag='pnpm add -g'
alias pagp='pnpm add -g pnpm' # update pnpm self

alias pnpm_add='pnpm add'
alias pnpm_add_d='pnpm add -D'
alias pnpm_add_g='pnpm add -g'
alias pnpm_add_g_pnpm='pnpm add -g pnpm' # update pnpm self

# alias padt='pnpm add -D @types/'
# alias pnpm_add_d_types='pnpm add -D @types/'
# https://stackoverflow.com/questions/38558401/add-prefix-and-suffix-to-in-bash
fuction pnpm_add_d_types(){
echo $" [exec]: pnpm add -D "${@/#/@types/}""
pnpm add -D "${@/#/@types/}"
}
alias padt="pnpm_add_d_types"


## mocha
alias pmo="pnpm mocha"
alias pmocha="pnpm mocha"
alias pmod="pnpm mocha --inspect-brk"
alias pmochad="pnpm mocha --inspect-brk"
```
ByteCat
2022-07-25 14:12:28 +08:00
@bojue #6
@swift #8
@ericgui #9

- 如果说 yarn1 比 npm 更快的话,pnpm 的 统一下载 + 软链 方式更是快得多,基本上两三秒就完成了所有依赖的安装,几乎不需要等待(在 Windows 上尤为显著,这也是我换用 pnpm 的主要原因);
- yarn3 的问题很多,之前就算安装 cra 的依赖,也无法启动项目,用过一次,改动也很大,网上的教程如果使用 yarn ,那么基本都是指 yarn1 ;
- 现在很多开源项目中都出现了使用 pnpm 安装的说明(例如 Vite ),用的人也越来越多了。

缺点:
- 对 pnpm 最好用在新的项目中,因为锁定依赖使用的是自有的 `pnpm-lock.yaml`。

其他:
- 选用哪个包管理器比较主观,可以自行下载来试一下。
qfdk
2022-07-25 14:15:48 +08:00
@magicdawn #58 alias 劝你还是别搞了。。 记得有个 alias cd="rm -rf" 删库跑路美滋滋

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

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

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

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

© 2021 V2EX