在vscode中执行命令npm -v 报错
报错内容 :
npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fw link/?LinkID=135170 中的 about_Execution_Policies。 所在位置 行:1 字符: 1 + npm -v + ~~~ + CategoryInfo : SecurityError: (:) [],PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
解决方法:
方法一:更改 PowerShell 执行策略(推荐)
-
以管理员身份打开 PowerShell:
- 在开始菜单中搜索 "PowerShell"。
- 右键点击 "Windows PowerShell",选择 "以管理员身份运行"。
-
查看当前执行策略:
Get-ExecutionPolicy通常会显示
Restricted。 -
更改执行策略: 运行以下命令将执行策略更改为允许本地脚本运行(推荐使用
RemoteSigned):Set-ExecutionPolicy RemoteSignedRemoteSigned:允许运行本地创建的脚本,但要求从网络下载的脚本必须有受信任发布者的数字签名。这是一个比较平衡的安全选择。- 其他可选策略(根据需要选择):
Unrestricted:允许运行所有脚本(不推荐,安全性较低)。AllSigned:要求所有脚本(包括本地)都必须有受信任发布者的数字签名(非常严格)。Bypass:不阻止任何脚本,也不提示(仅用于特定场景,不推荐作为常规设置)。
-
确认更改: 执行
Set-ExecutionPolicy命令后,PowerShell 会提示你确认是否要更改执行策略。输入Y或A然后按回车确认。 -
验证更改:
Get-ExecutionPolicy应该会显示
RemoteSigned。 -
在 VS Code 中测试: 关闭并重新打开 VS Code 的集成终端(或重启 VS Code),然后再次运行
npm -v,应该就能正常工作了。
方法二:在 VS Code 集成终端中切换 Shell
如果不想更改系统全局的 PowerShell 执行策略,可以将 VS Code 的默认集成终端更改为 Command Prompt (cmd.exe) 或 Git Bash,它们不受 PowerShell 执行策略的限制。
- 在 VS Code 中,按
Ctrl + Shift + P打开命令面板。 - 输入
Terminal: Select Default Profile并选择它。 - 从列表中选择
Command Prompt或Git Bash。 - 关闭并重新打开集成终端(
Ctrl + Shift + ``或+)。 - 现在在
cmd或Git Bash中运行npm -v应该没有问题。
方法三:临时绕过(不推荐用于常规使用)
在 PowerShell 中运行命令前加上 cmd /c,强制使用 cmd.exe 来执行:
cmd /c npm -v
但这需要每次执行 npm 命令时都加上前缀,很麻烦。
总结:
最推荐的方法是 方法一(
Set-ExecutionPolicy RemoteSigned),因为它从根本上解决了问题,允许 npm 等需要脚本的工具在 PowerShell 中正常工作,同时保持了合理的安全级别。方法二(切换终端)也是一个快速有效的替代方案,尤其当你不想修改系统策略时。
更多推荐
所有评论(0)