Как заставить Fish shell и NVM, установленные вместе с Homebrew, работать вместе?
Я пытаюсь управлять своими пакетами для OSX, используя Homebrew, насколько я могу. Я установил Fish Shell и NVM с помощью Homebrew, но не могу заставить Fish распознать мою установку NVM. Команды NVM отлично работают при запуске с Bash, вероятно, потому что, когда вы устанавливали NVM с помощью Homebrew, мне пришлось добавить несколько дополнительных строк в мой файл.bashrc.
После установки NVM с Homebrew он говорит:
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.
Кто-нибудь может помочь?
3 ответа
Вы можете использовать бас. Клонировать репозиторий git
git clone https://github.com/edc/bass.git
Затем перейдите в клонированный каталог и введите
make install
bass source ~/.nvm/nvm.sh ';' nvm use stable
Теперь вы сможете использовать узел внутри раковины рыбы.
Если вы используете oh my fish, вы можете установить плагин nvm (после установки NVM с помощью homebrew).
$ omf install nvm
Затем установите NVM_DIR, и все должно быть в порядке.
$ set -gx NVM_DIR (brew --prefix nvm)
Я создал следующую функцию внутри ~/.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
После нескольких проблем с другими плагинами, это просто работает.