LoginSignup
4
0

More than 5 years have passed since last update.

yarnを入れたら大変だった話

Posted at

皆さん、Node.js使ってますか。
Node.jsのパッケージマネージャーとしてnpmを使っている方もいると思いますが、今回はyarnの話です。

yarnって?

雑に言うとnpm互換で速いパッケージマネージャー。映画じゃないよ
キャッシュとか使ってオフラインでもinstall出来たりする、結構優れもの。

最初は、JavaのOkhttpみたいに、ラッパーと言うか、npmの上に載って裏であれこれしてくれるのかな、と思ってたんですが、どうやら違うらしい。

ンまぁそこはどうでも良いとして、yarnはBSDライセンスのフリーソフトですが、Facebook、Google、Exponent、Tildeが開発したらしいとも聞きます。
トップページにはこんな謳い文句が。

高速で、信頼性が高く、そして安全な依存関係の管理

速度とともに信頼性を謳っています。
そしてネットで記事を漁っても、それほどネガティブな記事は見当たらない。
更には、何か忘れてしまったのですが、何かのプロジェクトをnpmでやろうとするとdeprecatedって言われるらしく。。。

これは入れるしかない!と思い、ビクビクしながら入れてみたところ…

どこやねん。

yarnの入れ方

昔はnpmでも入れられたみたいですが、今はdeprecatedだしバージョンも古いかもなので、OSネイティブなパッケージマネージャーで入れましょう。Windowsはインストーラーもあり〼。
私はmacなのでbrew install yarn
一応yarn --versionで入ったかどうか確認を。

さてここからが問題。

"npm互換"?

npm互換を謳われていますが(どこで)、互換なのはpackage.jsonだけで、node_modulesの階層が違ったりします。なので置き換えるより入れ替える方が良いでしょう。

だが私が文句を言いたいのはここではない。

yarnを入れた後…

npm uninstall -g hoge
yarn global install hoge

こうすれば元あったnode_modulesに置いてくれると思ってました。
でも、無いんです。さぁどうする。Spotlightを使っても出てこない。どこだ…

しかも、入れたpackageのコマンドが反応しない!つまりPATHも通ってない。貴重な手がかりが…

と言うわけで大変なことになりました。

結論

いました。/Users/***/.config/yarn/global/node_modulesに。
.config。隠しフォルダ。そりゃSpotlightしてくれないわけだ。
中に.binってフォルダがあって、その中にシンボリックリンクが置いてあるので、ここにPATHを通してあげましょう。

export PATH=$PATH:/Users/***/.config/yarn/global/node_modules/.bin

一応echoで表示して追加されてるか確認しておきましょう。もしかしたら置き換わっちゃってるかもなので。

echo $PATH

これにてとりあえず解決。めでたしめでたし。

4
0
0

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
4
0