web-dev-qa-db-ja.com

Fish ShellとNVMの両方をHomebrewと一緒にインストールして連携させるにはどうすればよいですか?

できる限りHomebrewを使用してOSX用のパッケージを管理しようとしています。 Homebrewを使用してFishShellとNVMの両方をインストールしましたが、FishにNVMのインストールを認識させることができません。 NVMコマンドは、Bashで実行すると正常に実行されます。おそらく、Homebrewを使用してNVMをインストールすると、.bashrcファイルにいくつかの行が追加されたためです。

HomebrewでNVMをインストールした後、次のように表示されます。

Add NVM's working directory to your $HOME path (if it doesn't exist):

mkdir ~/.nvm

Add the following to $HOME/.bashrc, $HOME/.zshrc, or your Shell's
equivalent configuration file:

export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh

また、Homebrewインストールスクリプトがこの行を私の〜/ .profileに追加したようです

source /usr/local/opt/nvm/nvm.sh

これと同じ手法をFishで使用して、NVMインストールにもアクセスできるようになることを願っていますが、これを機能させることはできないようです。

私はこのテクニックを見つけました: https://github.com/passcod/nvm-fish-wrapper しかし、私はむしろNVMをラップする必要はありません。

誰か助けてもらえますか?

7
Sam

Bass を使用できます。 gitリポジトリのクローンを作成します

git clone https://github.com/edc/bass.git 

次に、クローンディレクトリにcdして、次のように入力します。

make install
bass source ~/.nvm/nvm.sh ';' nvm use stable

これで、fishShell内のノードを使用できるようになります。

6
Sanjay Karki

oh my fish を使用している場合は、nvmプラグインをインストールできます(homebrewでNVMをインストールした後)。

$ omf install nvm

次に、NVM_DIRを設定すると、すべて正常になります。

$ set -gx NVM_DIR (brew --prefix nvm)
22
George

~/.config/fish/functions/nvm.fish内に次の関数を作成しました。

function _nvm
    bass source (brew --prefix nvm)/nvm.sh --no-use ';' nvm $argv
end

function nvm    
    if test -e $NVM_CURRENT
        echo Setting up nvm..

        _nvm use default --silent

        set -x -g NVM_CURRENT (_nvm current)

        printf "Using Node %s\n" $NVM_CURRENT
    end

    _nvm $argv
end

他のプラグインでいくつかの問題が発生した後、これは正常に機能します。

2
iamsaitam