PS C:\Users\10449> npm -v
npm : 无法加载文件 D:\node\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
- npm -v
+ CategoryInfo : SecurityError: (:) [],PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
这个错误是因为 PowerShell 的执行策略(Execution Policy)限制了脚本的运行。默认情况下,PowerShell 的执行策略可能是 Restricted
,这会阻止任何脚本的运行,包括 npm
命令。
以下是解决这个问题的步骤:
1. 检查当前的执行策略
- 打开 PowerShell(以管理员身份运行)。
- 运行以下命令检查当前的执行策略:
Get-ExecutionPolicy
- 常见的执行策略包括:
Restricted
:禁止运行任何脚本。AllSigned
:只允许运行经过数字签名的脚本。RemoteSigned
:允许运行本地脚本,但远程脚本必须经过数字签名。Unrestricted
:允许运行所有脚本。
- 常见的执行策略包括:
2. 更改执行策略
为了允许运行 npm
命令,你可以将执行策略更改为 RemoteSigned
或 Unrestricted
。
方法 1:临时更改执行策略
- 在 PowerShell 中运行以下命令:
Set-ExecutionPolicy RemoteSigned -Scope Process
- 这将仅在当前 PowerShell 会话中更改执行策略,关闭 PowerShell 后会恢复默认设置。
方法 2:永久更改执行策略
- 以管理员身份运行 PowerShell。
- 运行以下命令:
Set-ExecutionPolicy RemoteSigned
- 这将永久更改执行策略。
- 如果系统提示确认,输入
Y
并按回车。
3. 验证更改
运行以下命令检查执行策略是否已更改:
Get-ExecutionPolicy
- 如果显示
RemoteSigned
或Unrestricted
,说明更改成功。
- 如果显示
再次运行
npm -v
检查是否正常工作:npm -v
- 如果显示 npm 的版本号,说明问题已解决。
4. 如果问题仍然存在
如果更改执行策略后问题仍然存在,可以尝试以下方法:
方法 1:使用命令提示符(CMD)
- 打开命令提示符(CMD),而不是 PowerShell。
- 运行以下命令:
npm -v
- 在 CMD 中,执行策略不会影响
npm
命令。
- 在 CMD 中,执行策略不会影响
方法 2:修复 Node.js 安装
- 重新安装 Node.js:
- 访问 Node.js 官网 下载最新版本。
- 运行安装程序,确保选择 Add to PATH 选项。
- 重新打开 PowerShell 或 CMD,运行
npm -v
检查是否正常工作。
5. 恢复执行策略(可选)
如果你不希望永久更改执行策略,可以在完成操作后将其恢复为默认值:
- 以管理员身份运行 PowerShell。
- 运行以下命令:
Set-ExecutionPolicy Restricted