brew経由やらndenvやらでnodeやnpmの場所が複雑になっていたので
nodenv1本に絞って、node関連の管理を整備した。
homebrew経由のnodeやnpmをアンインストール (デフォルトでは/usr/local/bin
に入っている)
brew uninstall npm
brew uninstall node
nodenv経由でnode、npmを管理する。
nodenv-installerというのを使えば自動でインストールしてくれるらしいが、今回はマニュアルインストールする
ホームディレクトリで
git clone https://github.com/nodenv/nodenv.git ~/.nodenv
こうすると、ホームディレクトリに./nodenv
フォルダが作られ、これからはnode関連(バージョン、パッケージ、コマンド、パス)においてこのフォルダ以下のことだけ考えれば良い。
オプションとして、以下のコマンドを入力すると、nodenvの処理が早くなる。
cd ~/.nodenv && src/configure && make -C src
インストールしたコマンドにパスを通す
echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.bash_profile
続いて、.bash_profile
にeval "$(nodenv init -)"
を加える
nodenv init
はnodenvをいい感じに設定してくれるコマンド
ターミナル再起動
ここで一旦、パスが通っているか確認
echo $PATH
で、/Users/[YOUR_USER]/.nodenv/shims:/Users/[YOUR_USER]/.nodenv/bin:
という感じで追加されていればOK
正しくインストールされているか診断
curl -fsSL https://github.com/nodenv/nodenv-installer/raw/master/bin/nodenv-doctor | bash
Checking for `nodenv' in PATH: /Users/[YOUR_USER]/.nodenv/bin/nodenv
Checking for nodenv shims in PATH: OK
Checking `nodenv install' support: /usr/local/bin/nodenv-install (node-build 4.4.4)
Counting installed Node versions: none
There aren't any Node versions installed under `/Users/[YOUR_USER]/.nodenv/versions'.
You can install Node versions like so: nodenv install 2.2.4
Auditing installed plugins: OK
OKになっていれば完了。
その後、nodenv経由で簡単に各バージョンのnodeがインストールできるコマンドを提供する、node-buildもインストールしておく。
ここでもまたhomebrew経由でインストールできるが、今回はnodenvのプラグインとして.nodenv
フォルダ下にインストールする
mkdir -p "$(nodenv root)"/plugins
git clone https://github.com/nodenv/node-build.git "$(nodenv root)"/plugins/node-build
これでやっとnodenvのインストールが完了。
ここからようやく、nodenv経由でnodeをインストールする。
nodenv install -l
で、インストールできるnodeのバージョンが一覧で表示されるので、自分が欲しいものをインストール。
nodenv install 11.11.0
node -v
で確認しようとすると、
nodenv: node: command not found
The `node' command exists in these Node versions:
11.11.0
というメッセージが出た。これはインストールしたnodeがグローバルに設定されていないからで、以下のコマンドで設定する。
nodenv global 11.11.0
node -v
v11.11.0
以上でnodenvでのnode環境の設定完了。
最終確認
which node
/Users/[YOUR_USER]/.nodenv/shims/node
which npm
/Users/[YOUR_USER]/.nodenv/shims/npm
nodenv versions
* 11.11.0 (set by /Users/[YOUR_USER]/.nodenv/version)
これで、これからは.nodenvフォルダ以下だけをみてnode関連(バージョン、パッケージ、コマンド、パス)を管理していけば良くなった。