5

Я пытаюсь управлять своими пакетами для 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 ответа3

16

Если вы используете oh my fish, вы можете установить плагин nvm (после установки NVM с помощью homebrew).

$ omf install nvm

Затем установите NVM_DIR, и все должно быть в порядке.

$ set -gx NVM_DIR (brew --prefix nvm)
5

Вы можете использовать бас. Клонировать репозиторий git

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

Затем перейдите в клонированный каталог и введите

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

Теперь вы сможете использовать узел внутри раковины рыбы.

2

Я создал следующую функцию внутри ~/.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

После нескольких проблем с другими плагинами, это просто работает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .