返回

2023 nvm踩坑日记

前端

前言

Node.js 是一个跨平台的 JavaScript 运行时环境,它可以让 JavaScript 代码在服务器端运行。nvm 是一个 Node.js 的版本管理工具,它可以帮助我们轻松地在系统中安装和切换不同的 Node.js 版本。

安装 nvm

安装 nvm 的方法很简单,只需要执行以下命令即可:

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

执行完上面的命令后,nvm 就已经安装好了。接下来,我们需要将 nvm 加入到系统的环境变量中,以便我们可以随时使用 nvm 命令。

在 Linux 和 macOS 系统中,我们需要在 .bashrc 文件中加入以下代码:

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

在 Windows 系统中,我们需要在 .profile 文件中加入以下代码:

setx NVM_DIR "%USERPROFILE%\.nvm"
"%NVM_DIR%\nvm.exe" init

使用 nvm

安装好 nvm 之后,我们就可以使用 nvm 来安装和切换不同的 Node.js 版本了。

要安装一个 Node.js 版本,我们可以使用以下命令:

nvm install <version>

例如,要安装 Node.js 16.16.0 版本,我们可以使用以下命令:

nvm install 16.16.0

安装好一个 Node.js 版本之后,我们可以使用以下命令来切换到该版本:

nvm use <version>

例如,要切换到 Node.js 16.16.0 版本,我们可以使用以下命令:

nvm use 16.16.0

nvm踩坑记录

踩坑1:nvm install node成功,但是npm下载不成功

在使用 nvm 安装 Node.js 16.16.0 版本时,我遇到了一个问题:nvm install node成功,但是npm下载不成功。

我查看了 nvm 的日志文件,发现如下错误:

Error downloading npm

我上网搜索了一下,发现这个问题是由于网络问题导致的。我尝试了几次,终于成功地下载了 npm。

踩坑2:node,npm安装成功但是安装路径有空格

在使用 nvm 安装 Node.js 18.12.1 版本时,我又遇到了一个问题:node,npm安装成功但是安装路径有空格。

这是因为我的 nvm 安装路径中含有空格。为了解决这个问题,我将 nvm 安装路径修改为不含空格的路径,然后重新安装了 Node.js 18.12.1 版本。

结语

以上就是我使用 nvm 时遇到的两个坑。希望这篇文章能帮助到其他遇到同样问题的朋友。

附录

nvm 常用命令

nvm install <version>    # 安装一个 Node.js 版本
nvm use <version>      # 切换到一个 Node.js 版本
nvm uninstall <version> # 卸载一个 Node.js 版本
nvm ls                  # 列出所有已安装的 Node.js 版本
nvm current             # 显示当前使用的 Node.js 版本
nvm alias <name> <version> # 给一个 Node.js 版本起别名

nvm 常见问题

nvm: command not found

这个问题通常是由于 nvm 没有被正确地添加到系统的环境变量中造成的。要解决这个问题,我们需要在 .bashrc 文件中加入以下代码:

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

nvm install: permission denied

这个问题通常是由于没有足够的权限安装 Node.js。要解决这个问题,我们需要使用 sudo 命令来安装 nvm。

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

nvm: unknown command

这个问题通常是由于 nvm 没有被正确地安装。要解决这个问题,我们需要重新安装 nvm。

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