首次创建Angular项目执行ng new命令报PSSecurityException错误如何解决
报错原因
你遇到的报错内容如下:
ng : File C:\Users\nraftis\AppData\Roaming\npm\ng.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
- ng new grid-list
- ~~
- CategoryInfo : SecurityError: (:) [], PSSecurityException
- FullyQualifiedErrorId : UnauthorizedAccess
该错误的根因是Windows PowerShell的默认执行策略限制了未签名脚本的运行。全局安装Angular CLI后生成的ng.ps1 PowerShell脚本属于未签名的本地脚本,符合默认禁止运行的规则,因此触发了安全拦截报错。
解决方案
按照推荐优先级排序如下:
- 方案1(平衡安全性和便利性):修改当前用户的PowerShell执行策略,允许本地未签名脚本运行
- 打开PowerShell(不需要管理员权限)
- 执行命令:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser - 弹出确认提示时输入
Y回车确认即可。该策略仅对当前Windows用户生效,只会放行本地创建的未签名脚本,从互联网下载的脚本仍需签名才能运行,不会明显降低系统安全性
- 方案2(临时生效,不修改长期配置):仅修改当前PowerShell窗口的执行策略
执行命令:Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process,该配置在关闭当前PowerShell窗口后会自动恢复为默认配置,适合临时使用的场景 - 方案3(无需修改策略,更换终端):直接使用Windows自带的命令提示符(CMD)执行
ng new相关命令,CMD没有PowerShell的脚本执行策略限制,无需额外配置即可正常运行Angular CLI命令
内容的提问来源于stack exchange,提问作者NikNek
相关产品推荐
相关产品推荐

