Node.jsのバージョン管理|fish上のanyenvでnodenvをinstallする + npm global でのinstallについて
モチベーション
とあるバージョンのNode.jsを使う必要が出てきました。今までは、nodebrewを利用していましたが、調べてみるとanyenvとnodenvを利用したものが最近的?みたい。なのでそれらをfishで利用できるように環境構築しました。
環境
- fish: version 3.0.2
- iTerm2: Build 3.3.2
- git: version 2.20.1 (Apple Git-117)
- vim: version 8.0.1365
環境構築
大体参考文献通りです。
▼fish
git clone https://github.com/riywo/anyenv ~/.anyenv # anyenvをinstall vim ~/.config/fish/config.fish # fishにpathを設定
▼config.fish
set -x PATH $HOME/.anyenv/bin $PATH
▼fish
source ~/.config/fish/config.fish # shellを更新 anyenv # anyenvがinstallできたか確認 exec $SHELL -l # shellを再起動 anyenv install --init # anyenvの初期設定? anyenv install nodenv # nodenvをinstall exec $SHELL -l # shellを再起動 vim ~/.config/fish/config.fish # shellのnodenvのパスを設定
▼config.fish
set -x NODENV_ROOT $HOME/.anyenv/envs/nodenv set -x PATH $HOME/.anyenv/envs/nodenv/bin $PATH set -gx PATH $NODENV_ROOT/shims $PATH
▼fish
source ~/.config/fish/config.fish # shellを更新 exec $SHELL -l # shellを再起動
▼fish
nodenv -v # nodenvでnode.jsをinstallできたか確認 nodenv install 10.16.0 # Node.jsのv10.16.0をinstall nodenv rehash # Node.jsのv10.16.0パスを~/.anyenv/envs/nodenv/shims/に配置? nodenv global 10.16.0 node -v
▼node -v の実行結果
v10.16.0
rehashとは
$ nodenv help rehash
を実行すると以下の文が出ました。
Rehash nodenv shims (run this after installing executables)
よく分からない。
こちらの方の rbenv rehashは何をやっているのか? · DQNEO起業日記 を見て把握できました。ありがとうございます。
~/.anyenv/envs/nodenv/versions/10.16.0/bin/
を~/.anyenv/envs/nodenv/shims/
に配置だと思われる。
npmでのglobal installについて
yarnを入れてみます。すると何やらanyenv配下にinstallされるよう。ちなみにNode.jsのバージョンを12.4.0にしている状態です。
▼fish
$ npm i -g yarn /Users/<username>/.anyenv/envs/nodenv/versions/12.4.0/bin/yarn -> /Users/<username>/.anyenv/envs/nodenv/versions/12.4.0/lib/node_modules/yarn/bin/yarn.js /Users/<username>/.anyenv/envs/nodenv/versions/12.4.0/bin/yarnpkg -> /Users/<username>/.anyenv/envs/nodenv/versions/12.4.0/lib/node_modules/yarn/bin/yarn.js + yarn@1.17.3 added 1 package in 0.725s
この状態でコマンド打つとyarnが見つからないと表示されました。パスが通ってないようですね。
▼fish
$ yarn
fish: Unknown command yarn
なので、以下のようにながったらしいパスをとりあえず、config.fishに入れてみました。
▼config.fish
set -x PATH $PATH $HOME/.anyenv/envs/nodenv/versions/12.4.0/lib/node_modules/yarn/bin/
で、パスを追加したのでconfig.fishを更新しておきます。
▼fish
source ~/.config/fish/config.fish
実行してみると無事にパスが通って yarn を使うことができました!だけど、もっと良い方法がありそうな気がする。。。
▼fish
$ yarn yarn install v1.17.3 [1/4] 🔍 Resolving packages... [2/4] 🚚 Fetching packages... [3/4] 🔗 Linking dependencies... [4/4] 🔨 Building fresh packages... ✨ Done in 69.68s.
npm install --globalについて
上記のもっと良い方法を見つけました。
参考文献
- anyenv/anyenv: All in one for **env, 入手先 https://github.com/anyenv/anyenv
- nodenv/nodenv: Manage multiple NodeJS versions., 入手先 https://github.com/nodenv/nodenv
- 改めて環境設定 anyenv、nodejs、firebase - Qiita, 入手先 https://qiita.com/dokkoisho/items/64a296ea7d13496a63bd
- fishターミナルでanyenvとndenvをインストールする。 - Qiita, 入手先 https://qiita.com/sea_ship/items/996ebb228e4eafa48c11
- Node.jsのバージョンを自動で切り替えられるndenvが超便利 - Qiita, 入手先 https://qiita.com/tonkotsuboy_com/items/5322d226b6783d25b5df
- rbenv rehashは何をやっているのか? · DQNEO起業日記, 入手先 http://dqn.sakusakutto.jp/2014/02/rbenv_rehash_what_it_does.html