Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

放弃使用 Yarn 2 的几点原因 #103

Open
lmk123 opened this issue Sep 11, 2021 · 0 comments
Open

放弃使用 Yarn 2 的几点原因 #103

lmk123 opened this issue Sep 11, 2021 · 0 comments
Labels

Comments

@lmk123
Copy link
Owner

lmk123 commented Sep 11, 2021

Yarn 2 已经发布了一年多了,今天我尝试将划词翻译从 Yarn 1 迁移到了 Yarn 2,但折腾了几个小时之后,我决定重新用回 Yarn 1。

在这里记录一下原因,等到以后再准备用 Yarn 2 时,看看有没有改进。

Webstorm 对 PnP 的支持不够好

使用 PnP 之后,Webstorm 报了两个错误:

  • eslint: 找不到 eslint 的 package 了。
  • TypeScript: 所有 .ts 文件里的 module 都无法解析了。

虽然 WebStorm 的开发者说最新版已经支持的很好了,但我用的就是最新版,而且也找不到可以解决问题的办法。在查找了一段时间的解决方案无果后,我重新改为了 node_modules 的方式。

.yanr.yaml 没法像 .npmrc 那样配置环境变量

#28 所说,我需要配置一些包(如 electron、node-sass 等)的镜像地址。在 Yarn 1 里,我把这些环境变量配置在了 .npmrc 文件里,但在 Yarn 2 里,.yarn.yaml 不支持配置环境变量,且它也不读取 .npmrc。

最终我使用了 #28 的第二种方案,即配置代理的形式来安装这些包。比较麻烦的是,一般情况是不需要代理的,所以我平时还得把代理给注释掉,需要用的时候再开。

相关 issue: yarnpkg/berry#2464

没有 yarn outdatedyarn upgrade

Yarn 2 提供了两个相关的命令 yarn upyarn upgrade-interactive,但是:

yarn up 没法做到 yarn upgrade --latest,如果我想升级依赖,那我得敲很多条命令。网上有人说可以用 yarn up ** 但我试了一下会报错。

yarn upgrade-interactive 就更离谱了,列了好几十个包出来让我挨个选择。而且,这个交互式的命令在我的终端里看起来很奇怪。相比于 yarn outdated,它似乎列出了不在 package.json 里的一些依赖项,这看起来很杂乱。

虽然 yarn outdated 有插件,但 yarn upgrade --latest 却没有。

相关 issue:yarnpkg/berry#749

总结

折腾到上面的最后一个问题的时候,我已经没有耐心了,于是重新用回了 Yarn 1。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant