164
123

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

nodenvの環境構築

Last updated at Posted at 2020-05-06

この記事では個人的にお勧めなnodenvのインストール方法と使い方について簡単に紹介していきたいと思います。

anyenvを使ったインストール方法も別の記事で紹介していますので、こちらも参考にしていただければと思います。

nodenvのダウンロード

まず、nodenvのソースをGitHubからcloneしてきます。

git clone https://github.com/nodenv/nodenv.git ~/.nodenv

nodenvのビルド

ダウンロードしてきたソースからnodenvをビルドして実行可能な状態にしましょう。

cd ~/.nodenv && src/configure && make -C src

pathを通す

コマンドを叩けるようにパスを通しましょう。

  • bashの場合
echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(nodenv init -)"' >> ~/.bash_profile
  • Ubuntu DesktopやWindows Subsystem for Linuxの場合
echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(nodenv init -)"' >> ~/.bashrc
  • zshの場合
echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(nodenv init -)"' >> ~/.zshrc
  • Fish shellの場合
set -Ux fish_user_paths $HOME/.nodenv/bin $fish_user_paths
echo 'eval (nodenv init - | source)' >> ~/.config/fish/config.fish

上記を参考に自分の環境に合ったコマンドを実行することでパスを通すことができます。

個人的にお勧めするパスの通し方はコンフィグファイルに以下のように記述する方法です。

bashzshで機能することを確認しています。

.zshrc
if [ -e "$HOME/.nodenv" ]
then
    export NODENV_ROOT="$HOME/.nodenv"
    export PATH="$NODENV_ROOT/bin:$PATH"
    if command -v nodenv 1>/dev/null 2>&1
    then
        eval "$(nodenv init -)"
    fi
fi

このように記述してパスを通しておくことで、nodenvを入れる予定のない環境へ.zshrcファイルなどをコピーしたとしても、エラーを吐きません。

シェルを再起動する

pathを通したらログインシェルを再起動して新しい設定ファイルを読ませましょう。

exec $SHELL -l

コマンドが正しくインストールされているかも確認しましょう。

nodenv --version

プラグインをインストールする

nodenvはnodeのバージョンを管理するためのコマンドですが、プラグインを入れることで、nodeのインストールも行うことができます。

まず、プラグイン用のディレクトリを作ります。

mkdir -p "$(nodenv root)"/plugins

次に、nodenv-buildをGitHubからcloneします。

git clone https://github.com/nodenv/node-build.git "$(nodenv root)"/plugins/node-build

これでnodenv-buildのインストールは完了です。

あとは、nodenvのアップデートなどをプラグインまで含めて自動で行ってくれるプラグインnodenv-updateを入れておくのをお勧めします。

git clone https://github.com/nodenv/nodenv-update.git "$(nodenv root)"/plugins/nodenv-update

これで、nodenv updateとコマンドを叩くことで、nodenvとそのプラグインを自動的にアップデートすることが可能です。

nodenvの使い方

ここまでの準備ができていれば、nodenvは以下のようにして使うことができます。

nodeのインストール

# インストールできるnodeのバージョンの確認
nodenv install --list

# nodeのインストール(12.16.3は本記事執筆時点でのLTSバージョン)
nodenv install 12.16.3

# nodenvからnodeやグローバルなnpmパッケージを見えるようにするためにrehashを行う
# 新しいnodeのバージョンを入れたり、npm install -gなどを行ったときに実行する必要がある
nodenv rehash

npm install -gのたびにrehashを行うのが面倒であれば
nodenv-package-rehash
のパッケージを入れることでそれを省略できます。

インストールしているnodeのバージョンの確認

nodenv versions

nodeのバージョンの指定

# グローバルで使うnodeのバージョンを指定する
nodenv global 12.16.3

# あるプロジェクトのディレクトリでのみ使うnodeのバージョンを指定する
nodenv local 12.16.3

nodenv localを実行することで、.node-versionという名前の不可視ファイルが生成され、その中にそのディレクトリで使うnodeのバージョンが記述されます。

gitなどで.node-versionを共有することで、プロジェクトのメンバーで使うnodeのバージョンを統一することもできます。

nodeのアンインストール

特定のnodeを消したい場合はuninstallコマンドを使います。

nodenv uninstall 12.16.3

nodenvのアップデート

# nodenv-updateをインストールしているとき
nodenv update

# nodenv-updateをインストールしていないとき
(cd "$(nodenv root)"; git pull)
(cd "$(nodenv root)"/plugins/node-build && git pull)

nodenvのアンインストール

~/.nodenvのディレクトリを消すだけです。

rm -rf $(nodenv root)

まとめ

最後まで読んでいただきありがとうございました。
以上でnodenvのインストール・使い方は一通り終了です。
他にもいろいろな機能がありますので、公式のドキュメントを参考にして使っていってください。

参考

164
123
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
164
123

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?