Windows :win10-64bit
步骤一(很重要):
如果本机从未安装过nodejs,可以跳过本步骤
彻底(一定要彻底)卸载本机的node和删除npm相关目录(参考stackoverflow上的解决方法)
稍微翻译一下(我的操作)就是:
-
把node相关进程杀掉,可右击菜单栏打开任务管理器,找到node进程然后“结束任务”
-
在应用程序管理界面卸载node
-
移除上述步骤4中的相关文件夹(如果存在的话)
-
删除node和npm相关的环境变量
-
在cmd运行 where node 可以看到node是否已被卸载(未卸载的话会看到一个安装路径)
步骤二:
官网地址:https://github.com/coreybutler/nvm-windows/releases/tag/1.1.8
点击下载安装包,我安装的是1.1.8,在release界面找到安装包下载就好
步骤三:
安装nvm-setup,就是普通软件的安装方法,地址可以都不用改(我选择了以下地址),安装完后会自动添加两个环境变量
打开nvm的安装目录,默认应该是:C:\Users{user}\AppData\Roaming\nvm\
修改settings.txt文件,把npm镜像改为淘宝镜像, 这是我的配置,默认的root和path不需要动,加上后面两行
1 2 3 4 5 |
|
步骤四:
可以执行以下命令进行操作
nvm -v: 查看nvm是否安装成功
nvm arch: 显示node是运行在32位还是64位模式
nvm install [版本号]: 安装对应版本的node,如 nvm install v16.5.0 安装完会看到nvm目录会多了对应版本的文件夹, 安装最新版本可使用命令 nvm install latest
nvm ls
: 列出已经安装的node.js版本
nvm use [版本号]
: 使用已安装的node16.5.0版本,版本指定成功之前是没有全局变量node或npm的,不用试了
版本切换成功后
-
node -v
:查看当前node版本 -
npm -v
:查看当前npm版本
坑:
运行 nvm use [版本号] 报错:
解决:使用管理员权限打开cmd,重新操作即可
看到Now using node vXXXX 就大功告成了, 可以使用node -v查看切换后的版本是否如预期
可以愉快玩耍啦!
但!某版本下使用npm i -g [package]
安装的全局包只有对应版本下才能使用
比如:
Mac OS
我有一个项目,因为node版本太高,导致npm run dev报错。那么如何降级呢?
(1)安装node版本管理模块n
sudo npm install n -g
n -V(大写) // 查看版本
n ls // 查看node list
下边步骤请根据自己需要选择
(2)安装稳定版
sudo n stable // 安装稳定版本
sudo n version // 安装版本
(3)安装最新版
sudo n latest
(4) 版本降级/升级
sudo n 版本号 //例如:sudo n 9.1.7
(5) 切换node版本
sudo n 14.4.0 即可切换node版本
(6) n 卸载
npm uninstall n -g
或
sudo npm uninstall n -g
(7) 删除 node
n rm versoin
或
sudo n rm version
卸载 node
首先,命令行执行:
sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}
查看 node 安装目录:
dd@lff ~ % which node
/usr/local/bin/node
依次执行下面的命令,删除 node 安装目录下的相关配置文件:
sudo npm uninstall npm -g
sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*
sudo rm -rf /usr/local/include/node /Users/$USER/.npm
sudo rm /usr/local/bin/node
sudo rm /usr/local/share/man/man1/node.1
sudo rm /usr/local/lib/dtrace/node.d
最后验证一下是否完全删除掉:
dd@lff ~ % node
bash: node: command not found
dd@lff ~ % npm
bash: /usr/local/bin/npm: No such file or directory
至此,node 已经完全卸载掉了。