问题现象:
- 在PowerShell中启动yarn时报错:
yarn : 无法加载文件 C:\Users\{{username}}\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅
https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
+ yarn serve
+ ~~~~
+ CategoryInfo : SecurityError: (:) [],PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
如下图:
- 在vscode的终端中启动yarn报错:
系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_
Execution_Policies。
所在位置 行:1 字符: 1
+ yarn serve
+ ~~~~
+ CategoryInfo : SecurityError: (:) [],PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
如下图:
原因分析
既然报错中说明了参阅地址,那么我们先看下文档上怎么说的:
Restricted
Windows 客户端计算机的默认执行策略。
允许单个命令,但不允许脚本。
阻止运行所有脚本文件,包括格式化和配置文件 () .ps1xml 、模块脚本文件 (.psm1) ,以及 PowerShell 配置文件 () .ps1 。
也就是说PowerShell默认是不允许文件和脚本运行的,那么我们给它更改一下运行策略,允许运行脚本就可以了。
那么为什么vscode中也会出现类似的报错呢?
我们观察terminal的面板右侧会发现vscode默认也是启动的powershell,所以就出现了如上报错。(这个应该也跟vscode的版本有关系,我安装的版本是这样的,其他版本未经测试)
问题解决
方法一:
打开设置 ——> 更新和安全 ——> 开发者选项,找到PowerShell
勾选上“更改执行策略,以允许本地PowerShell脚本在未签名的情况下运行。”,
点击应用
更改成功
方法二:
管理员身份打开 PowerShell
执行命令 set-ExecutionPolicy RemoteSigned
如果提示询问是否要更改执行策略?,则选择 A 或 Y
执行完毕后即可更改成功