LoginSignup
7
4

More than 5 years have passed since last update.

nvmで現在アクティブになっているnode(のディレクトリ)へのシンボリックリンクを有効化するオプションNVM_SYMLINK_CURRENT

Last updated at Posted at 2016-10-15

はじめに

NVM_SYMLINK_CURRENTというnvmの便利なオプションの存在を知ったので簡単にまとめました。

NVM_SYMLINK_CURRENTの概要

環境変数NVM_SYMLINK_CURRENTをtrueに設定すると、nvm useコマンドでnodeバージョンを切り替えたときにシンボリックリンク$NVM_DIR/currentを生成し現在アクティブになっているnodeのディレクトリへリンクを貼ってくれます。

公式からの引用

nvm use will not, by default, create a "current" symlink. Set $NVM_SYMLINK_CURRENT to "true" to enable this behavior, which is sometimes useful for IDEs. Note that using nvm in multiple shell tabs with this environment variable enabled can cause race conditions.

terminal上で動作確認

実際にNVM_SYMLINK_CURRENTを有効にするとどのように変化するかterminalで確認します。

terminal
$ nvm current
v6.2.2

# まだシンボリックリンクは存在しない
$ ls -l $NVM_DIR/current
ls: /Users/nooby/.nvm/current: No such file or directory

# オプションを有効にする
$ export NVM_SYMLINK_CURRENT=true

$ nvm use v5
Now using node v5.12.0 (npm v3.8.6)

$ which node
/Users/nooby/.nvm/versions/node/v5.12.0/bin/node

# node/v5.12.0ディレクトリへのリンクが生成される
$ ls -l $NVM_DIR/current
lrwxr-xr-x  1 nooby  staff  40 10 15 23:31 /Users/nooby/.nvm/current -> /Users/nooby/.nvm/versions/node/v5.12.0

$ nvm use v6
Now using node v6.2.2 (npm v3.9.5)

# node/v6.2.2のリンクへ切り替わる
$ ls -l $NVM_DIR/current
lrwxr-xr-x  1 nooby  staff  39 10 15 23:32 /Users/nooby/.nvm/current -> /Users/nooby/.nvm/versions/node/v6.2.2

このオプションを有効にすることでnvmで現在アクティブになっているnodeを$NVM_DIR/current/bin/nodeでも呼び出せるようになります。公式にも書かれていますがIDE等でnodeのpathを指定する際に便利そうな感じです。

NVM_SYMLINK_CURRENTの常時有効化

このオプションを常に有効にするために.bashrcなどでnvmの初期化前にexport NVM_SYMLINK_CURRENT=trueを追加しておくといいですね。

.bashrc
# init nvm
export NVM_DIR="${HOME}/.nvm"
export NVM_SYMLINK_CURRENT=true # <= 追加
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm

所感

Sublime等の追加パッケージでnode_pathを指定しなければいけないことがあり、今までwhich nodeの結果を直接指定していて気持ち悪いなと思っていましたが、NVM_SYMLINK_CURRENT を有効にすることで/Users/nooby/.nvm/current/bin/nodeを指定できるようになり、すっきりしました。


今日始めてNVM_SYMLINK_CURRENTの存在を知ったのですがいつから存在していたのだろう。 知らなかっただけで最初からあったのかな。 googleでの検索結果が1000件程度しかなくあまり知られていなさそうな感じ。

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