Loading

在vscode中运行npm及node命令,显示无法将“npm”识别为 cmdlet、函数、脚本文件或可运行程序的名称

一、起因:

半年没使用vue了,感觉对vue都快手生了,所以想用vue写些demo,但是由于上个星期刚刚重新安装系统,计算机的环境又被清空了,所以又苦逼的安装了一下node环境与vue脚手架。

二、问题:

当一切安装就绪时,在电脑自带的cmd的窗口下面输入npm指令,可以正常运行。

 

 但是在vscode下面却出现这个错误:

 

 三、解决方法

这个问题,貌似我之前好像遇过,但是后来好像不知道怎么解决了,由于之前刚刚开始学习vue,所以就把重心花在学习上面了,忽略这个问题的记录,所以当出现这个问题时,我就觉得有点熟悉又陌生的感觉,所以我按常规操作,打开浏览器,查了一下解决方案,但是好家伙,答案千奇百怪,然而却没有一个适合我

1.有的教我添加环境变量,说是node的环境变量没有加入到系统里面,但是现在安装的node,它都会默认追加到系统环境变量里面,所以不是这个问题。

2.有的叫我以管理员身份运行,但是我本身就是以管理员身份登录的,但是我还是重新用管理员身份打开了vscode,发现还是没有解决问题;

3.有的说是vscode默认建立的终端时powershell,得重新选择cmd建立终端。但是powershell本身就是cmd的超集,所以貌似觉得这位博主在放屁,但是我没有证据证明他在放屁,所以还是重新关掉vscode,重新以管理员身份运行,重新新建cmd终端,但是vscode的报错变了,变成了:‘npm‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件

4.这位同学提出教我查看vscode的当前策略

 

 

 这个虽然也解决不了问题,但是算是扩展了一下知识面,所以我查了一下这个策略是啥?

执行策略

使用命令Get-ExecutionPolicy确定当前执行策略
Restricted脚本不能运行 受限制的(默认设置)
Unrestricted允许所有的脚本运行
RemoteSigned本地创建的脚本可以运行,但从网上下载的脚本不能运行
AllSigned仅当脚本由受信任的发布者签名时才能运行。
Set-ExecutionPolicy以管理员身份修改策略

本地策略为Restricted,所有脚本不能运行,受限制的,需绕过

绕过姿势1powershell.exe -ExecutionPolicy Bypass -File .\test.ps1
绕过姿势二powershell.exe -exec bypass -Command "& {Import-Module E:\Desktop\powershelll\test.ps1}"
绕过姿势3powershell.exe -exec bypass -Command "& {Import-Module E:\Desktop\powershelll\test.ps1;InvokeAllChecks}"

所以至少在探索问题中,我学到了这个powershell的策略,了解了它的大概。
 
最后在上面都试过之后,发现都没办法解决我的问题,我最后重启电脑,最后成功解决问题。

 

 所以我觉得应该是vscode本身在读取电脑环境变量配置中出现了疏漏,我猜测vscode每次开机,自动读取电脑环境变量配置,然后再根据配置建立终端,所以没有重启电脑的情况下,刚刚安装的node环境变量没有被vscode得知,所以vscode会出现这个错误。当然这个只是我的一个猜测。

posted @ 2021-12-11 19:04  兜里还剩五块出头  阅读(10091)  评论(3编辑  收藏  举报