我已经安装了NVM,然后我发现了哦-my-zsh并安装了它。它似乎有一个nvm插件,我在.zshrc中启用。
我也把它放在我的.zprofile
中export NVM_DIR="/Users/me/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
现在我可以使用nvm,但每当我将别名默认设置为其他版本时,nvm会在下次打开shell时切换回来。
$ iojs -v
v1.2.0
$ which iojs
/Users/me/.nvm/versions/io.js/v1.2.0/bin/iojs
$ nvm use 1.5.1
Now using io.js v1.5.1
$ nvm alias default iojs v1.5.1
default -> iojs (-> iojs-v1.5.1)
$ which iojs
/Users/me/.nvm/versions/io.js/v1.5.1/bin/iojs
然后打开一个新的shell:
$ which iojs
/Users/me/.nvm/versions/io.js/v1.2.0/bin/iojs
我的旧bash可能会以某种方式搞砸了吗?我是OSX btw,但我想它并没有什么不同。
---------编辑------ 按要求提供更多输出
➜ ~ nvm version
iojs-v1.2.0
➜ ~ ls $NVM_DIR/alias
default
➜ ~ cat $NVM_DIR/alias/default
iojs
➜ ~ nvm alias iojs
iojs -> iojs-v1.5 (-> iojs-v1.5.1) (default)
➜ ~ nvm alias $(cat $NVM_DIR/alias/default)
iojs -> iojs-v1.5 (-> iojs-v1.5.1) (default)
我刚刚发现为什么它会恢复到1.2.0我认为。在安装oh-my-zsh的过程中,似乎从我的Bash shell中获取了活动路径并将其复制到.zshrc文件中,包括当时的活动nvm路径:
/Users/me/.nvm/versions/io.js/v1.2.0/bin
但是从PATH中删除后,现在我的zsh在启动新shell后无法找到任何Node二进制文件。所以问题仍然是我,为什么不记得NVM设置?我仍然可以像以前一样在活动shell中设置它,它只是没有坚持。
我现在认为我的oh-my-zsh安装可能存在根本性的错误。我在zshrc中启用了git插件但是命令" gst"不是有效的别名。
plugins =(git,gitflow,nvm,brew,tmux)
➜ ~ gst
zsh: command not found: gst
答案 0 :(得分:18)
将以下内容添加到.zshrc
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh
请注意,最后一定不知道为什么
答案 1 :(得分:7)
我现在正在工作。重新安装了oh-my-zsh。
我不确定发生了什么变化。我似乎需要保持启用nvm插件才能工作。
没有插件我尝试将nvm启动命令放在.zprofile
中export NVM_DIR="/Users/me/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
虽然在创建新shell时加载了文件,但它似乎没有正确启用NVM。
另外我注意到如果我在.zshrc中的zsh插件配置中出错,则没有错误,插件根本不起作用。所以这是我要小心的事情。例如,我偶然使用了逗号,然后插件在没有警告的情况下中断:
plugins=(git, gitflow, nvm)
答案 2 :(得分:1)
我正在使用OSX 10.11.6和Hyper和Oh My Zsh。我必须卸载通过nvm
安装的homebrew
,通过curl命令重新安装它,然后将此行添加到最底部,以使其正常工作。我确信这与我的所有插件/设置/等等有关,但这是使它对我有用的原因:
source "$NVM_DIR/nvm.sh"
在~/.zshrc
文件
答案 3 :(得分:1)
如brew在安装nvm时所述,“将以下内容添加到〜/ .bash_profile或所需的shell配置文件中:”
export NVM_DIR="$HOME/.nvm"
[ -s "$(brew --prefix)/opt/nvm/nvm.sh" ] && . "$(brew --prefix)/opt/nvm/nvm.sh" # This loads nvm
[ -s "$(brew --prefix)/opt/nvm/etc/bash_completion" ] && . "$(brew --prefix)/opt/nvm/etc/bash_completion" # This loads nvm bash_completion
即使.zprofile与.bash_profile等效,但由于某些原因,如果将行添加到.zprofile中,别名也将被忽略。因此,请将它们添加到.zshrc中。
请参阅https://formulae.brew.sh/formula/nvm,其中包含这些行的最新版本。
如果那行不通……有些人似乎已经成功地在其路径中添加了一些内容:https://github.com/nvm-sh/nvm/issues/1703#issuecomment-356221842。
答案 4 :(得分:0)
当我添加到~/.zprofile
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh
答案 5 :(得分:0)
如果您在〜/ .zshrc文件
中包含此行export PATH="/usr/local/opt/node@8/bin:$PATH"
删除该行或在文件中注释掉。
答案 6 :(得分:0)
使用 Linux (Ubuntu 20.04)
用你最喜欢的编辑器编辑 ~/.zshrc
nano ~/.zshrc
在文件末尾添加:
# NVM
export NVM_DIR=~/.nvm
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
然后你运行:
source ~/.zshrc