在 Windows 系统中使用 PowerShell 时出现 “无法加载文件 npm.ps1” 的错误,通常是由于系统的执行策略(Execution Policy)限制了脚本运行,这是 PowerShell 的安全机制导致的。以下是具体解决方法:
解决步骤:
-
以管理员身份打开 PowerShell
- 点击「开始菜单」,搜索 “PowerShell”
- 右键选择「以管理员身份运行」(必须管理员权限才能修改执行策略)
-
查看当前执行策略
在 PowerShell 中输入以下命令,查看当前的脚本执行限制:powershellGet-ExecutionPolicy
若返回Restricted
(默认值),表示禁止运行任何脚本,这就是导致 npm.ps1 无法加载的原因。 -
修改执行策略
输入以下命令,将执行策略修改为允许运行本地脚本(不会影响远程下载的未签名脚本):powershellSet-ExecutionPolicy RemoteSigned
-
确认修改
执行命令后会提示确认,输入Y
并回车(或直接按 Enter 键确认)。 -
验证是否生效
再次输入查看执行策略的命令,确认已修改为RemoteSigned
:powershellGet-ExecutionPolicy
-
测试 npm 是否可用
关闭当前 PowerShell 窗口,重新打开一个普通的 PowerShell 或命令提示符,输入:powershellnpm -v
若能正常显示版本号,说明问题已解决。
原理说明:
PowerShell 的
RemoteSigned
策略允许运行:- 本地创建的脚本(无需数字签名)
- 从网络下载的脚本(必须有可信数字签名)
这既保证了基本安全性,又能解决 npm 脚本无法运行的问题。如果后续需要恢复默认策略,可再次以管理员身份运行
Set-ExecutionPolicy Restricted
。