Syntax Error.

[Sy] yarn global の動き(インストールされる場所など)

2018/02/28

最近 npm ではなく yarn を使うことが多いんですが、 yarn を使ってグローバルにインストールする方法と、その場合の動きについて確認してみました。

試しに npm を使ってグローバルにインストールしていた http-server を一度アンインストールしてから、改めて yarn でグローバルにインストールしてみます。

(参考記事)

⇒ [Sy] npm でインストールできる簡易的な Webサーバ「http-server」が手軽で便利

npm で http-server をインストール済みならアンインストールしておきます。

$ npm uninstall -g http-server
removed 23 packages in 0.264s

1. yarn global で http-server をインストールする

以下のコマンドでインストールします。

$ yarn global add http-server
yarn global v1.5.1
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Installed "http-server@0.11.1" with binaries:
      - http-server
      - hs
✨  Done in 1.78s.

binaries というところに、 http-serverhs という 2つが記載されています。

これは、 http-severhs の2通りで実行できるということになります。

2. 動作確認

では動かしてみます。

まずは http-server を実行。

$ http-server
Starting up http-server, serving ./
Available on:
  http://127.0.0.1:8080
  http://192.168.1.2:8080
Hit CTRL-C to stop the server

起動しました。 Ctrl + C で停止します。

次に hs を実行。

$ hs
Starting up http-server, serving ./
Available on:
  http://127.0.0.1:8080
  http://192.168.1.2:8080
Hit CTRL-C to stop the server

両方とも同じですね。

3. インストールされた場所などを確認

いくつか確認してみます。

まずは、yarn でグローバルにインストールされているモジュールは、以下のコマンドで確認できます。

$ yarn global ls
yarn global v1.5.1
info "http-server@0.11.1" has binaries:
   - http-server
   - hs
✨  Done in 0.13s.

次に、http-serverhs の実体がどこにあるのかチェックします。

$ which http-server
/usr/local/bin/http-server

$ ls -l /usr/local/bin/http-server
lrwxr-xr-x  1 utano320  admin  84  2 28 17:30 /usr/local/bin/http-server -> ../../../Users/utano320/.config/yarn/global/node_modules/http-server/bin/http-server
$ which hs
/usr/local/bin/hs

$ ls -l /usr/local/bin/hs
lrwxr-xr-x  1 utano320  admin  84  2 28 17:30 /usr/local/bin/hs -> ../../../Users/utano320/.config/yarn/global/node_modules/http-server/bin/http-server

ホームディレクトリ配下に .config/yarn/global/node_modules/ というディレクトリが配置されていて、その中にモジュールがインストールされているのがわかります。