关于node安装和nvm安装、多项目同时启动不同node版本的问题
node
1.已经自定义路径安装了node,但是在cmd输入node -v显示不是内部命令
- 路径问题:确保 Node.js 已经被添加到了系统的环境变量 PATH 中。PATH 环境变量包含了操作系统用来查找命令的位置。你可以通过以下步骤检查 Node.js 是否已被添加到 PATH:
- 在 Windows 上,打开命令提示符,输入
echo %PATH%
并回车。你应该能在输出中看到 Node.js 的安装目录,通常是类似C:\Program Files\nodejs
这样的路径。- 在 Linux 或 macOS 上,打开终端,输入
echo $PATH
并回车。同样,你应该能看到 Node.js 的安装目录。如果你没有看到 Node.js 的安装目录,你需要将其添加到 PATH 中。具体的操作取决于你的操作系统和 shell,但通常包括修改
.bashrc
、.zshrc
或者.profile
文件,或者通过系统设置面板来添加环境变量。多个版本的 Node.js 共存:如果你同时安装了多个版本的 Node.js,你可能需要使用 nvm 或 nodist 等工具来管理它们。这些工具可以帮助你在不同的版本之间切换,并确保正确的版本出现在 PATH 中。
Node.js 安装损坏:有时,Node.js 可能会因为各种原因而损坏。在这种情况下,你可能需要卸载现有的 Node.js 版本,然后再重新安装。
最直接的方法就是选择卸载重装
nvm
-
nvm的工作原理:nvm允许用户在同一台机器上安装多个版本的Node.js,并可以轻松地切换版本。每个Node.js版本都有其自己的全局
node_modules
目录,这意味着为每个版本安装的包都是独立的。 -
包与Node.js版本的兼容性:Node.js的每个版本都可能引入新的API、功能或修改现有功能。因此,为特定版本开发的包可能依赖于该版本的特定功能或API。如果尝试在其他版本的Node.js中使用这些包,可能会遇到兼容性问题,如运行时错误或功能缺失。
-
使用特定版本的Node.js:当使用nvm切换到特定版本的Node.js时,npm(Node Package Manager)将使用该版本的全局
node_modules
目录。这意味着只能访问为该版本安装的包。如果需要在其他版本的Node.js中使用相同的包,则需要在该版本下重新安装这些包。
nvm 安装的node存放在哪个目录
NVM (Node Version Manager) 是一个 Node.js 版本管理器,它允许你在不同版本的 Node.js 之间切换,并且每次安装 Node.js 都是独立的,不会影响到全局的 Node.js 版本。 默认情况下,NVM 将每个安装的 Node.js 版本存储在以下位置:
- Windows:
%AppData%\nvm\versions\node
- macOS/Linux:
~/.nvm/versions/node
这个目录下的每一个子目录都代表一个单独安装的 Node.js 版本。你可以使用
ls ~/.nvm/versions/node
(在 macOS 或 Linux 上)或dir %AppData%\nvm\versions\node
(在 Windows 上)命令查看当前安装的所有 Node.js 版本。 你可以通过 NVM 切换到任何一个已安装的 Node.js 版本,如下所示:nvm use <version>
其中
<version>
是你想使用的 Node.js 版本号。如果你想使用最新版本,可以省略版本号。 如果你只想知道当前正在使用的 Node.js 的版本信息,可以使用nvm version
或node -v
命令。
切换版本报错exit status 1: 一堆乱码
- nvm off (关闭版本控制)
- nvm on(开启)
- nvm use xxx
nvm 安装了node,使用时显示not install
- 首先,检查你是否真的已经安装了那个版本。你可以运行
nvm list
来列出所有可用的 Node.js 版本。如果没有显示你想要的那个版本,那么你需要使用nvm install <version>
命令来安装它。例如,如果你想安装 Node.js v14.17.3 版本,可以运行nvm install 14.17.3
。- 如果你确定已经安装了该版本,但仍然看到 "Not Installed" 错误,那可能是由于 NVM 配置文件有问题。在你的主目录中(通常是
~
或%USERPROFILE%
),你应该有一个.nvm
目录,其中包含一个settings.txt
文件。打开这个文件,并确保其中有node_mirror
和npm_mirror
这两个选项,分别指向一个有效的 Node.js 和 npm 镜像站点。例如,可以设置node_mirror=https://npm.taobao.org/mirrors/node/
和npm_mirror=https://npm.taobao.org/mirrors/npm/
。- 最后,确保你的计算机上的路径变量已设置正确。在 Windows 上,你需要把 NVM bin 目录添加到系统环境变量 PATH 中;在 Linux 或 macOS 上,你需要在 ~/.bashrc 或 ~/.zshrc 文件中添加一行
export PATH="$HOME/.nvm/versions/node/<version>/bin:$PATH"
,其中<version>
替换成你要使用的 Node.js 版本号。
nvm 安装了某个node版本,使用时检查发现没有npm
npm 是随同 Node.js 一起安装的,并且它位于与 Node.js 相同的安装目录下。没有npm此时有以下两种方法
- 重装该版本的node
// 卸载指定版本的 Node.js nvm uninstall <version> // 安装最新的 nvm 版本 nvm install node
使用 nvm 安装 Node.js 版本时,添加 --with-npm 参数
nvm install 版本号 --with-npm
nvm切换Node.js版本npm报错
尽管nvm可以切换Node.js版本,但是不能为每个Node.js版本设置不同的npm版本。当使用nvm切换到某个版本的Node.js时,它只会使用该版本自带的npm版本。如果需要不同版本的npm,可能需要在每个版本中安装对应的npm,但是这非常麻烦。更好的做法是在全局环境下安装所需要的npm版本,并在项目中指定版本。
- 在当前环境中全局安装npm,使用如下命令:
npm install -g npm@version-number
- 在项目中设置npm版本。打开项目的 package.json 文件,添加以下字段:
"engines": { "npm": "version-number" }
nrm
nvm主要用于切换Node.js版本,而nrm则可以更快地下载npm包。
使用nvm切换Node.js版本时,先前设置的npm源可能会受到影响。因为nvm改变了 Node.js 版本,而每个 Node.js 版本默认的npm源可能不同,所以在切换Node.js版本之后,npm源可能会变回原来的源,但是,你可以在.nvmrc文件中设置全局npm源来避免这个问题。在.nvmrc文件中添加一句代码`registry=https://registry.npm.taobao.org`即可设置npm源。同时,nvm也有自己的npm源管理功能,在切换node版本时,npm源也会随之更改。
可以通过以下命令来更改nvm中的npm源:nvm alias default registry https://registry.npm.taobao.org
请注意,每个版本的Node.js都有自己的npm源,并且可能不同,因此,你需要确保全局npm源与Node.js版本对应的npm源是一致的。如果希望使用特定npm源,最好在每个Node.js版本下都使用相应的npm源。
nvm与nrm配合使用的方式如下:
- 首先安装nvm和nrm,具体方式可以参考相关教程。
- 使用nvm切换到某个版本的Node.js,例如 nvm use v14.17.0
- 使用nrm设置npm源,例如 nrm use taobao
- 再次切换回之前使用的Node.js版本,例如 nvm use v14.16.0
- 再次使用nrm设置npm源,例如 nrm use npm
以上操作会在每个版本中设置不同的npm源。注意,当切换到某个Node.js版本时,需要手动设置相应的npm源,除非你在.nvmrc文件中定义了npm源,这样会自动使用nrm配置的源。
注意,如果要在全局范围内设置npm源,可以将nvm设置为.nvmrc文件,如上面所述,但不推荐这么做。建议每个项目单独设置npm源,以保持灵活性和安全性。
nvm和nrm是一个非常好的组合,能够更好地管理Node.js版本和npm源,并避免频繁地切换源带来的困扰。
nvm-desktop
nvm-desktop
是一个以可视化界面操作方式管理多个 Node 版本的桌面应用,完美支持为不同的项目单独设置和切换 Node 版本,不依赖操作系统的任何特定功能和 shell。
项目地址
liushiwei/nvm-desktop (gitee.com)
安装参考博客
更多推荐
所有评论(0)