nvm安装后出现node不是内部或外部命令,也不是可运行的程序
nvm作为node管理工具可以在前端开发时,在本地安装多个node版本从来适应不同的工程代码,是比较推荐使用的!!
注意:在安装使用nvm时,需确保本地没有安装任意版本的nodejs(防止环境路径覆盖),导致nvm无法正常使用!!
作为小白在使用该工具时,可能会出现标题所示报错,原因在于系统环境变量配置有误,以下给出解决方案。
首先,展示nvm安装后正常工作的情况:
如果没有执行nvm ls后面没有Currently using 64-bit executable括号内容,则说明nvm管理node失效,后面的node npm均会报错!
其次,解决方法:
1. 找到电脑环境变量:我的电脑=> 属性=>高级系统设置=>环境变量
2. 将环境变量配置成如下图所示(缺的就新建,变量和值 不对就编辑修改):
3.将用户变量(U)和 系统变量(S)中的Path配置成如下图所示:
3.设置好以上环境变量 确定 ,即可解决问题,以下测试功能正常:
最后,提一下用户变量(U)和 系统变量(S)的区别作用:
所谓环境变量,可大致理解为就是给 操作系统 定义的一些路径和名称。比如 Path 就是最常用的环境变量,该环境变量就指示了可执行文件的存放目录。在使用cmd命令行时如果不指定其文件路径执行某个操作,系统可能找不到这个命令对应的可执行文件从而出现报错(“xx不是内部或外部命令,或者不是可执行程序”),此时则需要将要执行文件所在的目录放到Path环境变量中,就能够确保系统找到对应的可执行文件。
两者区别可以理解为 局部作用域和全局作用域
windows系统可以创建多个账户(默认名为Administrator),用户环境变量就是只对当前的账户有效,可以看到用户环境变量的全称是xxx的用户变量(U),表示这只是针对某个账户的变量;而系统变量就是对所有的账户都是有效的。
总结如下:
- windows系统在执行用户命令时,若用户未给出文件的绝对路径,则首先在当前目录下寻找相应的可执行文件、批处理文件等
- Path变量告诉系统可执行文件存放的路径
- 如果 当前目录 找不到对应文件名的程序,在 系统变量 的PATH的路径中,依次寻找对应的可执行程序文件;如果系统变量的PATH的路径找不到,再到 用户变量 的PATH路径中寻找(如果系统变量和用户变量的PATH中同时包含了同一个命令,则优先执行系统变量PATH中的命令)
- 系统变量与用户变量可以存在重名,比如系统变量与用户变量都可以有一个名为Path的变量(变量名都不区分大小写)
- 每次新加环境变量后要确定保存了,再重启CMD,否则不生效的
- 在CMD里要输出环境变量 ECHO %变量名%
附:可以发现,一般来说用户变量和系统变量只配置一个即可,并且推荐为用户专门配置环境变量,各用户差异对待。如果是直接安装的node没有用nvm管理,可以参考另外一篇文章--cmd可以用node但是vscode报错
更多推荐
所有评论(0)