【发布时间】:2018-04-11 02:37:45
【问题描述】:
系统中有一个nodejs,通过nvm安装。该命令未运行npm。
控制台是Oh my zsh
【问题讨论】:
-
使用 oh-my-zsh 插件
zsh-nvm
标签: npm terminal oh-my-zsh nvm
系统中有一个nodejs,通过nvm安装。该命令未运行npm。
控制台是Oh my zsh
【问题讨论】:
zsh-nvm
标签: npm terminal oh-my-zsh nvm
您可以使用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 $@
}
【讨论】:
.zshrc
从 Bash 切换到 Oh-My-Zsh
如果您已经安装了nvm,并且您正在从bash 切换到oh-my-zsh,您只需打开您的.zshrc 文件并添加nvm 包含在oh-my-zsh 中的插件:
.zshrc:nano ~/.zshrc
plugins=(git) 的位置并在括号内添加nvm 使其显示为plugins=(git nvm)(用空格分隔插件)control + O(在macOS上),然后按enter保存,然后按control + X退出nvm ls 以确认它有效。请注意,您必须为您的 shell 打开一个新窗口/选项卡才能使用新更新的 .zshrc 配置(或输入 source ~/.zshrc 等)来源:https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/nvm
【讨论】:
这在 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
【讨论】:
一个更简单的解决方案是使用默认提供的nvm plugin:
它还会自动获取 nvm,因此您无需手动执行 在你的 .zshrc 中
git clone https://github.com/nvm-sh/nvm.git ~/.nvmcd ~/.nvm && git checkout v0.35.1(当前最新release)nvm 添加到您的~/.zshrc。例如:plugins=(... nvm)
【讨论】:
使用自制软件安装nvm
brew install nvm
编辑您的系统配置
vim ~/.zshrc # or vim ~/.bashrc
export NVM_DIR=~/.nvm
esc > :wq
保存文件
重新加载配置source $(brew --prefix nvm)/nvm.sh
查看 nvm 版本
$ nvm --version
# 0.36.0
好好享受吧。
【讨论】:
source $(brew --prefix nvm)/nvm.sh 对我来说是缺失的部分。谢谢!
我发现 oh-my-zsh 附带了一个 nvm 插件(这与 lukechilds 插件不同)。经过短暂的检查,我认为它在加载时对.zshrc 添加了必要的修改,因此只需将nvm 添加到.zshrc 的插件列表中也应该可以正常工作(对我来说也是如此)。
我没有通过谷歌找到有关该默认 nvm 插件的更多详细信息,所以我不知道这是否是“首选”解决方案。
【讨论】:
nvm 添加为插件对我来说在 Mac 上不起作用(不过,操作系统不应该是一个因素)。我仍然得到zsh: command not found: nvm。我会尝试手动添加。
adding manually是什么意思?
将此代码添加到用户目录上的 .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
【讨论】:
我强烈建议使用 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
【讨论】:
使用 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
【讨论】: