nvm安装及使用 + 打开终端自动切换node版本教程

AI 概述
安装卸载全局安装的 node 包安装 nvm安装失败nvm 使用使用终端进入不同,avn 自动切换 node 版本 在日常的前端或 node 后台开发中,使用的部分 node 依赖,可能不支持当前使用的 node 版本,这时候如果还想使用这个依赖愉快的开发,那只能切换 node 版本了。 然而,卸载和安装 node 的麻烦程度虽然...
目录
文章目录隐藏
  1. 安装
  2. nvm 使用
  3. 使用终端进入不同目录,avn 自动切换 node 版本

在日常的前端或 node 后台开发中,使用的部分 node 依赖,可能不支持当前使用的 node 版本,这时候如果还想使用这个依赖愉快的开发,那只能切换 node 版本了。

然而,卸载和安装 node 的麻烦程度虽然还能接受,但想在其他项目,依然使用高版本 node 的语法支持,要么使用 webpack 或 gulp 这种构建编译工具,要么就还是需要使用高版本 node。

这时候,nvm 出现了。

nvm 就是 node 版本管理器,使用它可以安装多个版本的 node,然后可以通过一行命令,轻松切换当前使用的 node 版本。

也就是说,不用再卸载、安装了,想用哪个版本,就用 nvm 安装,安完一个指令切换就可以了!

下面基于 mac 系统,进行一些步骤的讲解。

安装

nvm 官方教程:传送门

卸载全局安装的 node 包

既然使用 nvm‘托管’,那么自己之前安装的全局 node 包,就需要先卸载了,防止出问题。

npm、cnpm、yarn 等都会被一并删掉,稍后需要重新安。

下面的指令,可以查看已经安装在全局的模块 node 功能模块,以便删除这些全局模块后再按照不同的 node 版本重新进行全局安装:

npm ls -g --depth=0

下面,是卸载步骤:

也可以用 type -a node 查看一下路径,不同机器和不通安装方式,位置可能不一样。

  1. 删除全局 node_modules 目录,里面其实只有几个文件夹,是 npm 和使用 npm 全局安装的比如 yarn、cnpm 等
    sudo rm -rf /usr/local/lib/node_modules
  2. 删除 node,其实就是卸载 node 环境了
    sudo rm /usr/local/bin/node
  3. 删除全局 node 模块注册的软链,懂 linux 指令语法的,大概可以看懂,下面这行的命令,就是先进入到系统的全局指令文件,筛选出其中依赖于 node_modules 的所有指令(其实还是步骤 1 中的那几个指令),然后删除
    cd /usr/local/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm

 

可以使用终端输node -v,如果提示node: command not found,就说明卸载完成了。

安装 nvm

安装 nvm 有多种方式,下面是两种方式,建议在官网查看最新的安装语句(由于外网问题,很可能会安装失败,后面有其他安装方式):

curl 方式:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

wget 方式:

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

上面两个语句,都会都会执行 nvm 的安装脚本,安装完成后,会有类似下面的打印:

=> Profile not found. Tried  (as defined in $PROFILE), ~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile.
=> Create one of them and run this script again
=> Create it (touch ) and run this script again
   OR
=> Append the following lines to the correct file yourself:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm

意思是,我们需要在~/.bashrc~/.bash_profile~/.zshrc~/.profile这四个文件的任意一个,加入 nvm 的这行指令,保存关闭,然后重启终端,就可以使用 nvm 指令了。

v0.35.3版本的指令如下,可以直接在官网安装最新版本的 nvm,粘贴最新版的指令(下面是官网提供的指令,也可以使用安装完成后,上面打印出来的指令):

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

这里推荐创建~/.bash_profile,如果有,则直接在里面的最后面加上上面的代码即,然后执行source ~/.bash_profile,重载此文件,nvm 就可以正常使用了。

安装失败

上面的语句有可能会由于网络问题,而安装失败。

此时可以进入 nvm 官方教程(实际就是一个 github 页面),这里会提供多种安装方式(但最终貌似都需要克隆 nvm 的仓库,我们可以手动克隆仓库了)。

但是, github 同样有无法打开的可能,那我们也打开国产 「githup」- 码云搜索nvm-sh,找到热血网友从 github 克隆至此的项目,一样的使用。

下面大致讲解其中比较简单的一种:

Git Install:

进入到 ~ 目录,使用 git 克隆 nvm 仓库:

cd ~/

git clone https://github.com/nvm-sh/nvm.git .nvm

进入,切换到最新版本分支(实际最新分支,可再去官网看一下):

cd .nvm

git checkout v0.38.0

执行一下安装指令,这个指令瞬间执行完成:

. ./nvm.sh

最后,再一下几个文件中的任意一个,~/.bashrc 、 ~/.profile ,或 ~/.zshrc,粘贴入一下代码:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

最后的最后,让系统重新读取一下这个文件,比如这个放进了 ~/.bashrc 文件中,那么执行:

source ~/.bashrc

完成,此时可以使用 nvm 了。

nvm 使用

主要为如下一些指令:

功能 指令
列出当前已安装的 node,和可安装的 lts(长期支持稳定版)版本 nvm ls
列出所有远程服务器的版本 nvm ls-remote
安装指定版本,可模糊安装,建议先查询后安装,比如 nvm install v11.11.0 nvm install <版本号>
安装最新稳定版 node nvm install stable
删除已安装的指定版本,语法与 install 类似 nvm uninstall <版本号>
设置一个默认版本,新打开的终端使用的版本 nvm alias default <版本号>
给不同的版本号添加别名 nvm alias <别名> <版本号>
取消一个别名 nvm unalias <别名>
切换当前终端使用的版本,但只针对当前终端生效,不影响其他 nvm use <版本号 或 别名>
显示当前的版本 nvm current
删除已定义的别名 nvm unalias <别名>
在当前版本 node 环境下,重新全局安装指定版本号的 npm 包 nvm reinstall-packages <版本号>

使用终端进入不同目录,avn 自动切换 node 版本

这个功能本来不需要,但近几年发现,业务和项目太多时,可能真的就很需要了。

比如,接收过来项目,使用的 node 版本可能五花八门;自己公司开发的项目,使用固定某个 node 版本;偶尔自己研究些新技术,又可能会使用最新版的。

本来是进入某个项目,就使用 nvm use 来切换一下,但总的来说很麻烦,每次打开终端都要来这么一下。

网上找了找,找到了这个工具: avn 。

首先新打开一个终端,保证现在使用的是默认版本的 node,这是因为 nvm 中,在不同的 node 版本下安装的全局依赖,是互不相通的。

这个工具是基于 node 的,我们只需要默认 node 下全局安装,当每次使用终端进入不同目录时,node 默认都是版本,然后它会自动执行,切换到接下来你要指定的 node 版本。

打开终端后,先全局安装:

npm install -g avn avn-nvm avn-n

然后启动这个工具:

avn setup

注意:不知道为什么,我使用 node^11.11.0 安装的依赖们,就可以启动,而是用 node^12.21.0,它还是个长期支持版,使用这个版本安装的依赖,启动时却会报错 if (cb) cb.apply(this, arguments) 很奇怪,不过,你可以在 v11.11.0 下,安装依赖并启动,之后切换 node 版本也不会影响了,如果有影响,就在其他版本下也安装依赖。

接下来,就是去到你需要自定义 node 版本的项目,创建文件 .node-version,内容直接写你需要的 node 版本,比如:

这个 node 版本,需要是你已经用 nvm 安装过了的,否则会报错 avn could not activate node v14.15.0 。

v14.16.0

然后,在这个项目下重启终端,就会出现提示:

avn activated v14.16.0 via ../.node-version (avn-nvm v14.16.0)

此时这个终端使用的 node,就是 v14.16.0 了。

优化: 但上面这个方法,需要在每个自定义 node 版本的项目中,添加这个文件,很不友好。

其实,我们可以在把这个文件,放在这个项目的父级目录中,同样会生效,这样凡是使用同一个 node 版本的项目,都放在这个文件夹下,就很友好了。

原文:点击这里

以上关于nvm安装及使用 + 打开终端自动切换node版本教程的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。

「点点赞赏,手留余香」

1

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » nvm安装及使用 + 打开终端自动切换node版本教程

发表回复