nrm、nvm(mac)、n

134 阅读3分钟

昨天找打包问题的时候,在本地需要切换node版本去查看相关问题,刚好使用到nvm/nrm,做个记录,如有误请各位大佬不吝赐教!!! 以mac为例

nvm

nvm不支持windows, 如果是windows用户,可使用来自 TJ 的 n

nvm (node.js version management),nodejs的版本管理工具。通过它可以安装和切换不同版本的nodejs

nvm官方文档

1. 安装方法

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
或
$ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

如果网络不好,可使用如下方法:

# 安装
$ bash -c "$(curl -fsSL https://gitee.com/RubyKids/nvm-cn/raw/master/install.sh)"

安装成功后,通过执行 nvm 命令还是出现以下提示

command not found: nvm

那就需要把以下脚本复制到终端中,执行

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

再执行nvm -v 就可看到执行成功 image.png

如果重新打开终端,再次执行nvm又提示 command not find,这个时候,就需要打开电脑上 .zshrc 文件,将上面的脚本复制到.zshrc文件底部

如果mac电脑找不到 .zshrc 文件的话,按 command+shift+. 打开隐藏文件

image.png

如果遇到如下错误:

image.png

可尝试: 在终端输入 arch -x86_64 zsh,然后回车,终端进入Rosetta 2模式。重新安装nvm(curl -o- raw.githubusercontent.com/nvm-sh/nvm/… | bash),然后再继续nvm install 8,nvm install 6

nvm 安装成功后,就可以使用nvm 进行node版本切换等操作 例:

2. 使用

安装指定版本
nvm install <version>

使用执行版本

nvm use <version>

nrm

nrm(NPM registry manager)是 npm 的镜像源管理工具,使用它可以快速切换 npm 源。

作为开发,大家肯定会通过npm去下载第三方依赖包,但由于 npm 默认的下载仓储地址是 https://registry.npmjs.org/,属于外国的网站,所以我们下载的时候可能会非常的慢,油或者公司内部需要用自己的镜像源,那这个时候就需要,去切换镜像源,我们可以通过以下命令完成切换

npm config set registry url(镜像源地址)

这命令似乎有点儿长,不太好记,有其他方式吗?嗯,有,nrm

1. 全局安装

npm i nrm -g

执行npm list -g --depth 0 可看到全局是安装成功的 image.png

如果使用nrm命令的时候报错

image.png

执行npm install nrm open@8.4.2 -g 更改nrm 版本即可

2. nrm常用命令

  • nrm ls :查看所有配置好的源以及对应名称
  • nrm add name url:添加源,name 是名称,可以自行命名,后面是源的 url 地址
  • nrm del name :删除源,根据名称 name 可以删除对应的源
  • nrm use name :切换源,即可使用 name 对应名称的源
  • 更多命令在命令行输入 nrm回车,即可查看

n

TJ大神的 n 命令,n 命令是作为一个 node 的模块而存在

nvm 与 n 的区别

node 版本管理工具还有一个是 TJ大神的 n 命令,n 命令是作为一个 node 的模块而存在,而 nvm 是一个独立于 node/npm 的外部 shell 脚本,因此 n 命令相比 nvm 更加局限。

由于 npm 安装的模块路径均为 /usr/local/lib/node_modules,当使用 n 切换不同的 node 版本时,实际上会共用全局的 node/npm 目录。 因此不能很好的满足『按不同 node 版本使用不同全局 node 模块』的需求。

安装

npm install -g n

安装成功后在终端输入n --versionn查看。

image.png

终端输入sudo n回车后,可查看安装的node所有版本,可通过上下键,选择想要使用的node版本

image.png

选中回车之后,就会切换到对应的版本

image.png 查看更多n命令,执行n help

image.png

希望可以帮到你;

如有疑问,请留言