目录
前言
一、安装 node
二、用 n 管理 node 版本
1、清除 npm 缓存
2、使用 npm 安装 n
3、使用 n 管理 node
(1)、查看已安装的 node 列表
(2)、 查看官方所有的 node 版本
(3)、安装指定版本的 node
(4)、切换 node 版本
(5)、删除指定版本 node
4、卸载 n
三、用 nvm 管理 node 版本
1、卸载 node(见本文第四节)
2、下载安装 nvm
3、使用 nvm 管理 node
(1)、查看已安装的 node 列表
(2)、查看官方所有的 node 版本
(3)、安装指定版本的 node
(4)、切换 node 版本
(5)、删除指定版本 node
(6)、nvm 的启用与禁用
4、卸载 nvm
四、卸载 node
1、Mac 卸载 node
2、Windows 卸载 node
node.js 以往的版本
安装 node 的方式有多种,这里说的是直接安装 node。若要用第三方工具来安装管理 node,请使用 n 活 nvm 来实现,具体见下文。
直接安装 node 需要去 node 中文官网下载最新的安装包。
如果要安装以往的 node 版本请戳这里。我安装的是 10.13.0 版本。
【注意】:下载时,建议选择 尾缀名是 .pkg 的文件 下载。
下载下来,直接安装,一路绿灯,OK。
然后,查看 node 版本号:
命令行输入:
node -v
若成功会显示你安装的 node 版本号。
顺便查看一下 npm 的版本号:
命令行输入:
npm -v
如何查看 node 安装目录呢?
which node
sudo npm cache clean -f
命令行执行:
npm install -g n
如果报错:code EACCES errno -13,表示你没有权限,请以管理员身份安装:
sudo npm i n -g
查看 n 是否安装成功
n -V(大写的V)
若成功,就会显示 n 的版本号。
n ls
npm view node versions
以安装 14.15.3 版本的 node 为例,命令行执行:
n 14.15.3
跑了一堆代码,可最终显示的还是原来的版本:
installed : v10.13.0 (with npm 6.4.1)
说明安装失败了。 是不是权限的问题呢?所以,用管理员身份运行一下:
sudo n 14.15.3
最终显示的版本为新的版本:
installed : v14.15.3 (with npm 6.14.9)
至此,安装成功了。
现在,我的 node 版本是14.15.3 的,我想使用 10.13.0 的版本。
命令行执行:
n
通过上下键,选择要使用的 node 版本
dd@lff ~ % n
ο node/10.13.0
node/14.15.3
Use up/down arrow keys to select a version, return key to install, d to delete, q to quit(使用上/下箭头键选择版本,回车键安装,d删除,q退出)
回车安装,待代码运行完毕后,发现最终显示的还是原来的版本:
installed : v14.15.3 (with npm 6.14.9)
说明切换 node 失败了。 是不是权限的问题呢?所以,用管理员身份运行一下:
sudo n
最终显示的版本号是:
installed : v10.13.0 (with npm 6.4.1)
至此,node 版本切换成功了。
命令行运行:
n rm 10.13.0
然后,查看 node 版本,发现还是 10.13.0。
接着,查看一下已安装的 node 版本:
dd@lff ~ % n ls
node/10.13.0
node/14.15.3
这就说明 10.13.0 版本的 node 并没有删除掉,是不是权限的问题呢?所以,用管理员身份运行一下:
sudo n rm 10.13.0
然后,查看 node 版本,发现还是 10.13.0。
再查看一下已安装的 node 版本:
dd@lff ~ % n ls
node/14.15.3
发现,10.13.0 的 node 已经被删掉了。
最后,记得用 n 切换一下 node 版本(相见第 (3)步),以正常使用 node。
命令行执行:
npm uninstall n -g
或
sudo npm uninstall n -g
若遇到类似如下这般的乱码提示:“exit status 1: �ܾ����ʡ�”。这说明:你没有在管理员 cmd 的 dos 窗口中执行切换 node 版本的命令——以管理员的身份运行 cmd 打开 dos 窗口(具体操作请参见“DOS 窗口里常用的 linux 命令”的第三小节)。
安装 nvm 之前必须检查本机是否已经安装 node.js。有的话尽量将其卸载掉,这样安装了 nvm 后方便使用 nvm 对 node.js 进行统一的管理。
安装路径不能有中文!
点此在 github 上下载最新版本的 nvm(要下载 nvm-setup.exe 的文件)
下载好后,双击运行该 nvm-setup.exe 文件。建议最好将 nvm 安装目录和 nodejs 的存放目录修改下到同一目录 nvm 下,这样方便将 nvm 和 node 一起管理:
待安装完成后,执行下面的命令以查看 nvm 是否安装成功:
nvm version
若成功,就会显示 nvm 的版本号。
然后,需要检查系统变量里是否配置了正确的环境变量(一般都会默认自动就配置好了,这里是以防万一)。在 cmd 里输入下面的命令以打开“系统属性”面板:
start sysdm.cpl
然后,选择“高级-->环境变量”:
nvm list
nvm list available
nvm install '版本号'
必须在管理员 cmd 的 dos 窗口中执行下面的命令才有效:
nvm use '版本号'
必须在管理员 cmd 的 dos 窗口中执行下面的命令才有效:
nvm uninstall '版本号'
必须在管理员 cmd 的 dos 窗口中执行下面的命令才有效:
在 cmd 里输入下面的命令以打开“程序和功能”:
start appwiz.cpl
然后,在“程序和功能”里搜索 nvm,将其右击卸载。
然后,检查原来安装的 nvm 文件夹是否还在。在则删之。
然后,cmd 里输入下面的命令以查看 nvm 文件是否还在:
where nvm
若在会返回改文件的目录,需要将其删除。否则会提示:“信息: 用提供的模式无法找到文件。”
然后,需要改变环境变量,在 cmd 里输入下面的命令以打开“系统属性”面板:
start sysdm.cpl
然后,选择“高级-->环境变量”:
首先,命令行执行:
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 已经完全卸载掉了。
先清除 npm 缓存,dos 窗口里执行下面的命令:
sudo npm cache clean -f
然后在 cmd 的 dos 窗口里执行下面的命令以打开“程序和功能窗口”:
start appwiz.cpl
在程序和功能窗口中搜索 node,然后将其卸载。
之后定位到你安装 node 的磁盘(我这里是 C 盘),接下来需要检查一些目录文件是否还存在,若存在则将其删除:
C:\Program Files (x86)\Nodejs
C:\Program Files\Nodejs
C:\Users\{User}\AppData\Roaming\npm(或%appdata%\npm)
C:\Users\{User}\AppData\Roaming\npm-cache(或%appdata%\npm-cache)
然后查看下电脑里是否还有 node 文件,在 cmd 的 dos 窗口里执行下面的命令:
where node
有的话会显示完整的目录。没有的话,会提示: “信息: 用提供的模式无法找到文件。”
检查您的 %PATH% 环境变量以确保没有引用 Nodejs 或 npm 存在,在 cmd 的 dos 窗口里执行下面的命令就能打开系统属性:
start sysdm.cpl
然后选择“高级-->环境变量”,在用户变量和系统变量里,双击 path,看看里面有没有 npm 和 node 关键字。有则删之。
最后,重启电脑。就好了。