NodeJS版本管理工具-nvm
前言
nvm 是NodeJS版本管理工具。
查看版本
NVM版本
1 | nvm version |
推荐最新版
1.2.2
查看NODEJS版本
1 | node -v |
所以升级Node版本即可,这里使用nvm管理Node版本
安装
Windows
nvm可以通过下面的连接下载安装即可。
https://github.com/coreybutler/nvm-windows
链接:https://pan.baidu.com/s/1tvOu3UoIUF2riVRqbcmqTA
提取码:763s
注意
安装路径不能出现空格,否则安装失败!
安装路径不能出现空格,否则安装失败!
安装路径不能出现空格,否则安装失败!
安装后会自动创建以下的环境变量
NVM_HOME:指向nvm的安装目录。NVM_SYMLINK:指向当前使用的 Node.js 版本的符号链接目录。
查看环境变量
1 | echo %NVM_HOME% |
Mac
Mac 使用的是 Unix 版 nvm ,和 Linux 同一套工具,不是 Windows 上的 nvm-windows 。
当前系统默认 shell 一般是 zsh ,配置写进 ~/.zshrc 。
如果之前用 pnpm env 管理 Node.js 版本,需要先去掉相关配置。
否则 PATH 里的 pnpm Node 会盖住 nvm 切换的版本。
卸载 pnpm env
只去掉 pnpm 管理 Node 运行时的配置,不必卸载 pnpm 本身。
打开 zsh 配置文件。
1 | vi ~/.zshrc |
如果曾自定义 pnpm 的 Node 目录,删除类似下面这一行。
路径按本机实际配置修改,常见写法是把 ~/tools/pnpm/bin 加进 PATH 。
1 | export PATH="/Users/psvmc/tools/pnpm/bin:$PATH" |
PNPM_HOME 那一段是 pnpm 自身的入口。
如果还要用 pnpm 装包就先留着,只处理它放进去的 Node 。
保存后重新加载配置。
1 | source ~/.zshrc |
如果本机还能执行 pnpm ,先看当前全局 Node 是不是 pnpm 装的。
重新打开终端
1 | which node |
这时应该找不到node了。
也可以直接删掉 bin 目录里的 node 、 npm 、 npx ,避免继续抢占命令。
1 | rm -f ~/Library/pnpm/node ~/Library/pnpm/npm ~/Library/pnpm/npx |
安装NVM
一键安装
国内可用 nvm-cn 脚本安装。
1 | bash -c "$(curl -fsSL https://gitee.com/RubyMetric/nvm-cn/raw/main/install.sh)" |
安装前需要已安装 git 。
安装脚本会把初始化语句追加到 ~/.zshrc 。
执行下面命令让当前终端生效。
1 | source ~/.zshrc |
Homebrew 安装
也可以用 Homebrew 安装。
1 | brew install nvm |
Homebrew 装完后不会自动接入 shell ,需要在 ~/.zshrc 中手动加载。
Apple Silicon 机器上路径一般是 /opt/homebrew/opt/nvm ,Intel 机器一般是 /usr/local/opt/nvm 。
在 ~/.zshrc 中追加下面内容,路径按本机 Homebrew 前缀调整。
1 | export NVM_DIR="$HOME/.nvm" |
加载后执行 source ~/.zshrc 。
添加国内 Node 镜像,避免直连官方源过慢。
把下面这行写进 ~/.zshrc ,然后再次执行 source ~/.zshrc 。
1 | export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/ |
此时可以查看远程可用版本。
1 | nvm ls-remote |
Linux
国内镜像
安装
1 | sudo apt install curl git |
添加
1 | export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/ |
输入后,在终端中输入下面的命令使其生效,然后可以接着运行nvm命令
1 | source ~/.bashrc |
此时运行 查看所有可用版本
1 | nvm ls-remote |
镜像
NVM镜像
Windows
设置镜像地址
在 nvm 的安装路径下,找到 settings.txt
查找nvm路径(只能在CMD中使用)
1 | where nvm |
添加后内容如下:
1 | node_mirror: https://npmmirror.com/mirrors/node/ |
或者执行
1 | nvm npm_mirror https://npmmirror.com/mirrors/npm/ |
Mac
Mac 与 Linux 一样,把镜像写进 shell 配置即可。
zsh 用户编辑 ~/.zshrc ,加入:
1 | export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/ |
然后执行 source ~/.zshrc 。
NPM镜像
1 | npm config set registry https://registry.npmmirror.com/ |
其中npm config提供的参数:
registry是设置依赖的镜像disturl是设置Node的镜像sass_binary_site是sass的镜像electron_mirror是electron的镜像python_mirror是python的镜像
新版本除了registry,其他都没法用命令设置了
我们可以编辑文件
1 | npm config edit |
添加
1 | registry=https://registry.npmmirror.com/ |
切换版本
1 | # 查看可用版本 |
查看node和npm版本
1 | node -v |
常见问题
安装依赖报错
npm install的时候报错
当通过nvm切换nodejs版本为16以上时,npm install [package]报错:
Unexpected token ‘.’
原因是nvm-windows的问题,需要升级NVM版本
我这里升级到最新的1.2.2版本就没问题了
https://github.com/coreybutler/nvm-windows/releases
下载后要卸载并重新下载NodeJS
1 | nvm uninstall 18.20.8 |
查看NVM版本
1 | nvm version |
下载提示证书失效
npm ERR! request to https://registry.npm.taobao.org/yorkie/download/yorkie-2.0.0.tgz failed, reason: certificate has expired
临时不验证证书
1 | npm config set strict-ssl false |
安装完所需的包后,最好将此设置还原,以保持更高的安全性:
1 | npm config set strict-ssl true |
下载版本失败
使用最新版本的NVM,安装路径不要有中文和空格。