LoginSignup
19
6

More than 1 year has passed since last update.

Yarnは2022年においてきた!!yarnをやめるまでの軌跡

Last updated at Posted at 2023-01-04

みなさん、JavaScriptのパッケージマネージャーは何を使っていますか?

私は以前は仕事でも個人開発でもyarnをメインで使っていたのですが、2022年5月に転職してから仕事ではnpmを使うようになりました。

それでも個人開発はわざわざnpmに移行するほどでもないと思っていたのでyarnを使い続けていました。
しかし、2022年にyarnがらみのエラーに数回遭遇し、2022年末についにyarnを卒業しました。

ちなみに個人開発ではyarn v1とv2+を使っていましたが、主にv2+で色々ハマりました。

dependabotが使えない

yarn v2+でZero-Installsを使っていたのでcacheもコミットしていたのですが、GitHubのdependabotがcacheを更新してくれないのでdependabotが使えなりました。

その時のツイート

エディターに特別な設定を入れないとタイプチェックなどがうまく動かない

VS Codeなどを使っていると、自動でタイプチェックやlintをしてくれるので便利ですよね。
ただし、yarn v2+の場合は特別な設定が必要になります。

私の設定の仕方が悪かっただけかもしれませんが、VS Codeで一度設定しても定期的にうまく動かなくなり、その都度再設定していたのでとても面倒でした。

TypeScriptのバージョンをあげたらnext buildが動かなくなった

ある日、TypeScriptのバージョンをあげたらnext buildが動かなくなりました。
TypeScriptやNext.jsを中心に調査していても全然原因がわからず、結局原因はyarnでした・・・

Jestも動かなくなった

next buildと同じタイミングでjestも動かなくなりました。
こちらも調査を進めると、原因はyarnでした・・・

commitやpushが重い

Zero Installだとcacheをコミットするのでパッケージが更新された時のcommitやpushに結構時間がかかります。
これが結構ストレスでした。

仕事ではnpmを使うようになったのでyarnのコマンドを忘れ始めた

仕事での開発量 > 個人開発量なので、仕事でnpmを使うようになったことでyarnの使用回数が減り、yarnではどうやるんだっけ?と考える時間が増えました。

npmに比べてインストールが手間

わずかな差ではあるのですが、npmはnodeをインストールすれば良いだけなのに対して、yarnはさらに一手間必要なのでインストールが面倒に感じるようになりました。

またTypeScriptをバージョンアップしたら動かなくなった

またTypeScriptをバージョンアップしたら動かなくなりました。
yarnの移行を本気で考えました。

Remove yarn

年末大掃除の時期、満を持してyarnからnpmへ移行しました。
その時のプルリクです。cacheも丸ごと削除しているのですごい差分になっています。

スクリーンショット 2023-01-05 0.05.50.png

最後に

こうして私が頻繁に触るフロントエンドコードからはyarnが消えました。
yarn、今までありがとう!そして、さようなら!!!

19
6
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
6