如何让 Fish shell 和 NVM 与 Homebrew 一起安装并协同工作?

如何让 Fish shell 和 NVM 与 Homebrew 一起安装并协同工作?

我正在尝试尽可能多地使用 Homebrew 来管理我的 OSX 软件包。我已经使用 Homebrew 安装了 Fish Shell 和 NVM,但 Fish 无法识别我的 NVM 安装。使用 Bash 运行时,NVM 命令运行良好,可能是因为当您使用 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。

有人可以帮忙吗?

答案1

您可以使用低音. 克隆 git 仓库

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

然后进入克隆的目录并输入

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

现在您应该能够在 fish shell 中使用节点。

答案2

如果你使用哦我的鱼您可以安装 nvm 插件(使用 homebrew 安装 NVM 之后)。

$ omf install nvm

然后设置 NVM_DIR,一切就好了。

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

答案3

我在里面创建了以下函数~/.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

在遇到其他插件的几个问题后,这个插件就解决了。

相关内容