hotoolong's blog

プログラムのことやエンジニアリングに関することを記事にしています。

fishシェルでnvmをインストールするときにはomfで

あっと言う間に4月ですね。 ブログに書いてなかったのですが、転職しまして4月からスタートアップ企業で働くことになりました。 最近すこし怠けてるので、新しい会社で少し不安です。

それはさておき、 fishシェルにして初めてnvm をインストールして少しハマったので備忘録に brew で インストールできるので インストールしたのですが、 brew install nvmすると

You should create NVM's working directory if it doesn't exist:

  mkdir ~/.nvm

Add the following to ~/.config/fish/config.fish or your desired shell
configuration file:

  export NVM_DIR="$HOME/.nvm"
  . "/usr/local/opt/nvm/nvm.sh"

You can set $NVM_DIR to any location, but leaving it unchanged from
/usr/local/opt/nvm will destroy any nvm-installed Node installations
upon upgrade/reinstall.

Type `nvm help` for further information.

と情報が出ますね。これはbrew info nvm と同じなのですが、 そのまま設定すると nvm.shの読み込みでコケてしまいます。 まぁfishなので当たり前ですね。

そこで omf install nvm してあげると

nvm をラップしたfishを作ってくれます。 omfインストール時に foreign-env が入っているのですが この子がfenv コマンドになっていて、shを変換してくれるようです。 便利ですね。

内部で

fenv source $nvm_prefix/nvm.sh\; nvm $argv

と呼び出しています。

無事読み込まれるとnvmがうまく動きました。 いいですね。