如何运行" nvm"在"哦,我的zsh"?

时间:2017-10-30 07:13:48

标签: npm terminal oh-my-zsh nvm

在系统中有一个nodejs,通过nvm安装。该命令未运行npm。 控制台为Oh my zsh

9 个答案:

答案 0 :(得分:44)

您可以使用zsh-nvm或通过在〜/ .zshrc中添加以下行来自行启用

 export NVM_DIR=~/.nvm
 [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

<强>附加

为了更快地进行shell初始化,我使用lazynvm只在需要时加载节点

lazynvm() {
  unset -f nvm node npm
  export NVM_DIR=~/.nvm
  [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm
}

nvm() {
  lazynvm 
  nvm $@
}

node() {
  lazynvm
  node $@
}

npm() {
  lazynvm
  npm $@
}

参考:Lazy load nvm for faster shell start

答案 1 :(得分:4)

我发现oh-my-zsh附带了一个nvm插件(与lukechilds插件不同)。经过短暂的检查,我认为它在加载时会对.zshrc进行必要的修改,因此只需将nvm添加到.zshrc的插件列表中也可以(并且对我有用)。

我没有通过Google找到有关该默认nvm插件的更多详细信息,所以我不知道这是否是“首选”解决方案。

答案 2 :(得分:3)

如果您已经安装了nvm,并且从bash切换到oh-my-zsh,则只需打开.zshrc文件并添加nvm oh-my-zsh附带的插件。用.zshrc打开nano ~/.zshrc,向下滚动到显示plugins=(git)的位置,然后添加nvm,使其显示为plugins=(git nvm)(用空格分隔新插件)。按control + O(在MacOS上)保存,然后按control + X退出。然后打开一个新的终端窗口/标签,并输入nvm ls确认其有效。

来源:https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/nvm

答案 3 :(得分:3)

使用自制软件安装nvm

  1. brew install nvm

  2. 编辑系统配置

    vim ~/.zshrc     # or  vim ~/.bashrc
    export NVM_DIR=~/.nvm

esc>:wq
保存文件

  1. 重新加载配置
    source $(brew --prefix nvm)/nvm.sh

  2. 查看nvm版本

$ nvm --version
# 0.36.0

享受吧。

答案 4 :(得分:2)

安装或更新nvm

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash

添加〜/ .zshrc

echo 'export NVM_DIR=~/.nvm' >> ~/.zshrc
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"' >> ~/.zshrc

在当前shell环境中加载

source ~/.zshrc

检查nvm版本

nvm -v

答案 5 :(得分:1)

我强烈建议使用UnsafeCell,以避免启动时间太慢:

# Add every binary that requires nvm, npm or node to run to an array of node globals
NODE_GLOBALS=(`find ~/.nvm/versions/node -maxdepth 3 -type l -wholename '*/bin/*' | xargs -n1 basename | sort | uniq`)
NODE_GLOBALS+=("node")
NODE_GLOBALS+=("nvm")

# Lazy-loading nvm + npm on node globals call
load_nvm () {
  export NVM_DIR=~/.nvm
  [ -s "$(brew --prefix nvm)/nvm.sh" ] && . "$(brew --prefix nvm)/nvm.sh"
}

# Making node global trigger the lazy loading
for cmd in "${NODE_GLOBALS[@]}"; do
  eval "${cmd}(){ unset -f ${NODE_GLOBALS}; load_nvm; ${cmd} \$@ }"
done

答案 6 :(得分:1)

将此代码添加到用户目录中的 .zshrc

export NVM_DIR="$HOME/.nvm"
  [ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh"  # This loads nvm
  [ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion

然后在您的终端上运行此代码:

source ~/.zshrc

答案 7 :(得分:0)

一种更简单的解决方案是使用默认随附的nvm plugin

  

它还会自动获取nvm,因此您无需手动进行操作   在您的.zshrc中

  1. git clone https://github.com/nvm-sh/nvm.git ~/.nvm
  2. cd ~/.nvm && git checkout v0.35.1(当前最新的release
  3. nvm添加到您的~/.zshrc中。例如:plugins=(... nvm)

答案 8 :(得分:0)

使用 Linux (Ubuntu 20.04)

用你最喜欢的编辑器编辑 ~/.zshrc

nano or vi ~/.zshrc

在文件末尾添加:

# NVM
export NVM_DIR=~/.nvm
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

然后你运行:

source ~/.zshrc