Windows
PowerShell
- 运行 npm -v 时报错
- 遇到的错误是因为 Windows PowerShell 的 执行策略 (Execution Policy) 限制了脚本的执行,导致你无法运行
npm命令。默认情况下,PowerShell 会阻止执行未签名的脚本或没有正确权限的脚本,以确保系统的安全。
解决这个问题有以下几种方法:
1. 临时更改执行策略
你可以临时更改 PowerShell 的执行策略,让它允许执行脚本。执行以下命令来临时允许所有脚本:
-
以 管理员身份 打开 PowerShell:
- 在开始菜单中搜索
PowerShell,右键点击“Windows PowerShell”,选择“以管理员身份运行”。
- 在开始菜单中搜索
-
输入以下命令以临时修改执行策略:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process这个命令会在当前 PowerShell 会话中将执行策略设置为
RemoteSigned,这意味着本地脚本可以执行,而从远程获取的脚本必须是已签名的。 -
然后再尝试运行你的
npm命令:npm -v
2. 永久更改执行策略
如果你希望每次打开 PowerShell 时都不受执行策略限制,可以永久更改执行策略。
-
以管理员身份打开 PowerShell。
-
输入以下命令:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser这将允许当前用户执行本地脚本,并且从远程下载的脚本必须经过签名。
-
再次尝试运行
npm命令。
3. 检查当前执行策略
你可以检查当前的执行策略,使用以下命令查看:
Get-ExecutionPolicy -List
这将显示当前在不同范围(如 MachinePolicy, UserPolicy, Process, CurrentUser, LocalMachine)下的执行策略。
4. 恢复默认执行策略
如果你更改了执行策略后遇到问题,可以恢复默认的执行策略:
Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope CurrentUser
注意:
-
执行策略的不同选项含义:
Restricted: 默认设置,不允许任何脚本执行。RemoteSigned: 允许本地脚本执行,但从 Internet 下载的脚本需要有有效签名。Unrestricted: 允许所有脚本执行(最不安全)。Bypass: 不对脚本执行做任何限制。
更改执行策略后,应该可以顺利执行 npm 或其他相关脚本命令。如果问题依然存在,请尝试重新启动 PowerShell 或检查是否存在其他权限问题。