How to get Fish shell and NVM both installed with Homebrew to work together?
Solution 1
You can use Bass. Clone the git repository
git clone https://github.com/edc/bass.git
Then cd in the cloned directory and type
make install
bass source ~/.nvm/nvm.sh ';' nvm use stable
Now you should be able to use node inside fish shell.
Solution 2
If you're using oh my fish you can install the nvm plugin (after installing NVM with homebrew).
$ omf install nvm
Then set the NVM_DIR and all should be fine.
$ set -gx NVM_DIR (brew --prefix nvm)
Solution 3
I've created the following function inside ~/.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
After having several issues with other plugins, this just works.
Related videos on Youtube
Sam
Updated on September 18, 2022Comments
-
Sam over 1 year
I am trying to manage my packages for OSX using Homebrew as much a I can. I have installed both the Fish Shell and NVM using Homebrew but cannot get Fish to recognize my NVM installation. NVM commands are run fine when run with Bash, probably because when you install NVM using Homebrew it had me add some extra lines to my .bashrc file.
After installing NVM with Homebrew it says to:
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
Also it appears the Homebrew install script has added this line to my ~/.profile
source /usr/local/opt/nvm/nvm.sh
I hope that it would be possible to use this same technique with Fish to also gain access to the NVM installation, but I cannot seem to get this to work.
I have found this technique: https://github.com/passcod/nvm-fish-wrapper But I would rather not have to wrap NVM.
Can anyone help?
-
George over 8 yearsnot sure why the downvote, this is what I am currently using …
-
codenamejames almost 6 yearsEvery other option on the internet was like step1... step2... step45... Thanks for a quick simple solution
-
d0x over 5 yearsWorks like sharm! I replaced
(brew --prefix nvm)/nvm.sh
by the direct path/usr/local/opt/nvm/nvm.sh
to improve the initial setup time by 3/4. -
iamsaitam almost 5 yearsI also ended up doing the same, when I noticed it was taking 2+ seconds to get a new session going.