【问题标题】:How to run "nvm" in "oh my zsh"?如何在“oh my zsh”中运行“nvm”?
【发布时间】:2018-04-11 02:37:45
【问题描述】:

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

【问题讨论】:

标签: npm terminal oh-my-zsh nvm


【解决方案1】:

您可以使用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

【讨论】:

  • 如果有人使用 Vim 进行开发,延迟加载会导致使用 tsserver 的自动完成失败,因为 tsserver 不会在 PATH 中找到。最好只使用急切加载恕我直言。
  • 如果我将它添加到 ~/.zshrc,运行 nvm 时会出现“找不到命令”?这个怎么用?
  • 确保您的 .zshrc 已加载:您可以键入“lazy”并按 Tab 键查看 ZSH 自动补全是否显示您lazynvm。如果没有,请检查您的 shell 配置或 ZSH 配置以确保它正在加载 .zshrc
【解决方案2】:

从 Bash 切换到 Oh-My-Zsh

如果您已经安装了nvm,并且您正在从bash 切换到oh-my-zsh,您只需打开您的.zshrc 文件并添加nvm 包含在oh-my-zsh 中的插件:

  1. 使用以下命令在 nano 中打开您的 zsh 配置文件.zshrcnano ~/.zshrc
  2. 向下滚动到显示plugins=(git) 的位置并在括号内添加nvm 使其显示为plugins=(git nvm)(用空格分隔插件)
  3. control + O(在macOS上),然后按enter保存,然后按control + X退出
  4. 然后打开一个新的终端窗口/选项卡并输入nvm ls 以确认它有效。请注意,您必须为您的 shell 打开一个新窗口/选项卡才能使用新更新的 .zshrc 配置(或输入 source ~/.zshrc 等)

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

【讨论】:

  • 感谢您的详细回答。我认为改善这个答案的唯一方法是:添加标题(从 Bash 移动到 zsh)并添加一些换行符
  • 感谢@duichwer 的建议。我刚刚进行了这些编辑。
  • 这是正确正确的答案,请忽略其他的lol。
  • 你是救世主
【解决方案3】:

这在 Ubuntu 20.04 上对我有用。

安装或更新 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

【讨论】:

  • 为我工作!!谢谢
【解决方案4】:

一个更简单的解决方案是使用默认提供的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)

【讨论】:

  • 这对我很有帮助。谢谢。
【解决方案5】:

使用自制软件安装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

好好享受吧。

【讨论】:

  • source $(brew --prefix nvm)/nvm.sh 对我来说是缺失的部分。谢谢!
  • 谢谢,这解决了我的问题。很高兴我在重新安装之前尝试过这个。
【解决方案6】:

我发现 oh-my-zsh 附带了一个 nvm 插件(这与 lukechilds 插件不同)。经过短暂的检查,我认为它在加载时对.zshrc 添加了必要的修改,因此只需将nvm 添加到.zshrc 的插件列表中也应该可以正常工作(对我来说也是如此)。

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

【讨论】:

  • 在撰写本文时,将nvm 添加为插件对我来说在 Mac 上不起作用(不过,操作系统不应该是一个因素)。我仍然得到zsh: command not found: nvm。我会尝试手动添加。
  • 我遇到了同样的问题。请问adding manually是什么意思?
【解决方案7】:

将此代码添加到用户目录上的 .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

【讨论】:

    【解决方案8】:

    我强烈建议使用 christophemarois' approach to lazy loading nvm (node, npm and global packages) 以避免缓慢的 shell 启动时间:

    # 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
    

    【讨论】:

      【解决方案9】:

      使用 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
      

      【讨论】:

        猜你喜欢
        • 2014-01-27
        • 2020-09-10
        • 1970-01-01
        • 2015-05-18
        • 2015-12-23
        • 1970-01-01
        • 1970-01-01
        • 2014-09-01
        • 1970-01-01
        相关资源
        最近更新 更多