在日常的工作的开发中,我们可能有多个项目需要维护,但是有的项目的是几年前已经开发好的,有的则是最近新开的。开发中我就发现有些老项目用比较高版本的node取下包时会报错,那我就想每次维护老项目的时候还要去重新下载一个能兼容的,版本较低的node么,所以我们非常需要一个node的版本管理工具,那就是nvm。
nvm 安装指南
nvm 在 window 安装会存在一些问题, 从安装步骤,到问题解决,一次性梳理清楚
1. 先卸载node环境(若有),进入控制面板找到 nodejs 卸载
2. github下载 nvm-window下载 下载 nvm-setup.exe 版本
3. 设置 nvm 的root路径 - window 不要放在有要求有管理员权限读写的盘符
4、测试
`cd d:\nvm nvm -v`
存在输入内容, 即安装完成
5、nvm 默认的node 镜像和 npm 镜像如下
找到d:/nvm/settings.txt 文件
`node_mirror: https://nodejs.org/dist/ npm_mirror: https://github.com/npm/cli/archive/`
因为网络问题,nvm 安装Node 可能会超时,所以需要修改 下载源
手动修改 nvm 安装目录下的 setting.txt 文件
d:/nvm/settings.txt 文件
`root: C:\Users\WS\AppData\Roaming\npm path: C:\Users\WS\AppData\Roaming\npm node_mirror:npm.taobao.org/mirrors/node/ npm_mirror:npm.taobao.org/mirrors/npm/`
6、测试下
# 例如 安装14的最新版本
nvm install 14
# 查看本机的 node 清单
nvm list
# 使用指定版本 nvm use 需要指定完整的版本号
nvm use 14.19.3
问题排查
1、找不到node包
问题: Could not retrieve https://nodejs.org/dist/latest-v14.x.x/SHASUMS256.txt
解决办法: 网络问题, 切换 node 源可解决
2、安装node 版本报 无法读写
nvm install 16
Downloading node.js version 16.15.0 (64-bit)...
Error while creating C:\software\nvm\v16.15.0\node.zip - open C:\software\nvm\v16.15.0\node.zip: The system cannot find the path specified.
Could not download node.js v16.15.0 64-bit executable.
原因: 没有权限
解决办法: window 命令行采用管理员权限安装
3、执行 node -v 提示命令找不到
检查 setting.txt 中的 root 和 path 是否指向 如下路径 AppData\Roaming\npm
root: C:\Users\WS\AppData\Roaming\npm
path: C:\Users\WS\AppData\Roaming\npm
4、window下执行 nvm use 14.19.3 切换node 版本 乱码
这种乱码 内容其实是下面的 , 提示没有权限, 采用管理员权限运行即可, window每次切换node版本,都需要 管理员权限运行
`You do not have sufficient privilege to perform this operation.`
5、 nvm 安装后, node -v, npm -v 都可以,nested aliases not supported**
node -v, npm -v 都正常, 但是在项目里 npm i 就 不能安装依赖
删除 package-lock.json 文件即可, 存在冲突问题
6、卸载 node后,本机还没删除干净,导致 nvm 安装不上
检查如下目录, 手动删除
C:\Users\WS\AppData\Roaming