之前重装电脑node.js然后配置了一系列环境,发现powershell识别不了npm命令,但是cmd可以,于是就找了一系列资料来解决;
检查powershell的配置文件
确保powershelll中的配置文件没有出现错误或者是缺少路径
打开powershell输入命令:$env:PATH
可以看到我的 npm路径正确的添加到了环境变量path当中,接下来排查一下其他原因;
检查 npm
路径是否正确
确保 npm
实际存在于 C:\Users\*******\AppData\Roaming\npm
路径中,在power中输入一下命令
Get-ChildItem "C:\Users\******\AppData\Roaming\npm\npm.cmd"(替换成你自己电脑相应的路径)从错误消息里面看到C:\Users\32921\AppData\Roaming\npm\npm.cmd"路径里面不存在npm.cmd文件,说明npm可能没有正确安装或者是配置有问题;
确保npm的安装路径是正确的
在命令提示符(cmd)中输入where npm或者安装路径;
C:\Windows\System32>where npm
C:\Program Files\nodejs\npm
C:\Program Files\nodejs\npm.cmd
D:\app\node\node_global\npm
D:\app\node\node_global\npm.cmd
这些路径中,PowerShell 可能没有正确识别期望的 npm
路径。我们可以手动确保 PowerShell 使用正确的路径。
优化powershell 的path环境变量
在powershell中运行命令:
$env:PATH = "C:\Program Files\nodejs;D:\app\node\node_global;" + $env:PATH
PowerShell 报告的错误 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本
表明当前的执行策略阻止了脚本的运行。这是由于 PowerShell 的执行策略设置为了限制脚本执行;
临时更改执行策略(只在当前会话有效):
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
‘’
永久更改执行策略(建议设置为 RemoteSigned):
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
确认更改之后,就会提示已经跟新了执行策略,然后就可以在powershell正常使用npm命令了;