yarn.ps1 无法加载,因为在此系统上禁用了运行脚本
yarn.ps1 cannot be loaded because running scripts is disabled on this system
当执行策略不允许在 Windows 上运行特定脚本时,会出现错误“yarn.ps1 无法加载,因为在此系统上禁用了运行脚本”。
使用Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
命令解决错误。
yarn : File C:\Users\bobbyhadz\AppData\Roaming\npm\yarn.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.
以管理员身份打开 PowerShell 并使用
Set-ExecutionPolicy
命令设置其执行策略。
以管理员身份运行 PowerShell:
- 单击搜索栏并键入“PowerShell”。
- 右键单击“PowerShell”应用程序,然后单击“以管理员身份运行”。
- 运行以下命令。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
该Set-ExecutionPolicy
命令设置 Windows 计算机的 PowerShell 执行策略。
RemoteSigned
策略是Windows 服务器计算机的默认执行策略。它要求从互联网下载的所有脚本和配置文件均由受信任的发布者签名。这有效地删除了 的执行策略Restricted
,它不允许我们加载配置文件或运行脚本。执行Restricted
策略是 Windows 客户端计算机的默认策略。
Set-ExecutionPolicy
CurrentUser
运行带有参数的命令
如果您无法以管理员身份运行该命令,请尝试使用该CurrentUser
参数运行它。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
该RemoteSigned
策略仍然阻止我们运行未签名的脚本。
现在,运行
Get-ExecutionPolicy
命令:
Get-ExecutionPolicy
该Get-ExecutionPolicy
命令应显示当前 PowerShell 会话的有效执行策略 ( RemoteSigned
)。
RemoteSigned
,则表明您已成功更新权限并且能够运行该yarn
命令。您还可以使用
-List
参数运行该命令,以按优先顺序显示每个作用域的执行策略。
Get-ExecutionPolicy -List
-List
参数运行时,该命令返回按优先顺序列出的会话的所有执行策略值的列表。该命令应显示已RemoteSigned
为默认范围 ( LocalMachine
) 设置策略。
- 如果出现“’Yarn’ 未被识别为内部或外部命令”的错误,请点击
以下文章。
设置执行策略为Unrestricted
如果别的都不行,你可以尝试将执行策略设置为
Unrestricted
,这意味着系统将允许未签名的 PowerShell 脚本运行。
以管理员身份运行 PowerShell:
- 单击搜索栏并键入“PowerShell”。
- 右键单击“PowerShell”应用程序,然后单击“以管理员身份运行”。
- 运行以下命令。
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
从 PowerShell 6.0 开始,Unrestricted
这是非 Windows 计算机的默认执行策略,无法更改。
运行命令范围为当前用户
或者,您可以运行仅适用于当前用户的命令。
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
如果我运行该Get-ExecutionPolicy -List
命令,我可以看到该LocalMachine
范围的执行策略现在设置为Unrestricted
.
Get-ExecutionPolicy -List
该策略加载所有配置文件并运行所有脚本。如果您运行从互联网下载的未签名脚本,在运行之前您仍会收到许可提示。
设置你ExecutionPolicy
的Bypass
或者,您可以将您的设置ExecutionPolicy
为Bypass
。
使用该Bypass
策略时,不会阻止任何内容,也不会出现警告或提示。绕过比 更宽松Unrestricted
。
确保在发出命令之前以管理员身份打开 PowerShell。
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force
您还可以绕过特定脚本 () 文件的策略.ps1
。
powershell -ExecutionPolicy Bypass -File "C:\path\to\script.ps1"
可能的执行策略值如下。
姓名 | 描述 |
---|---|
AllSigned | 要求所有脚本和配置文件都由受信任的发布者签名。 |
旁路 | 没有任何东西被阻止,也没有警告或提示。 |
默认 | 设置默认执行策略(Restricted 适用于 Windows 客户端)。 |
远程签名 | 要求从 Internet 下载的所有脚本和配置文件都由受信任的发布者签名。 |
不明确的 | No execution policy is set for the scope. |
Unrestricted | The default policy since PowerShell 6.0 for non-Windows computers. The policy loads all configuration files and runs all scripts. If you run an unsigned script, you’re prompted before the script runs. |
You can read more about the Set-ExecutionPolicy
command and its possible
values and parameters in
this section
of the official docs.
# Additional Resources
If you get an error that yarn is not found or is not recognized, click on the
related article.
- ‘Yarn’ is not recognized as an internal or external command
- yarn: command not found
- How to force Yarn to reinstall a package
- Yarn: There appears to be trouble with your network connection. Retrying
- How to uninstall YARN on Windows, MacOS and Linux
- Yarn error: Command failed with exit code 127 [Solved]
- 纱线错误:没有场景;必须至少有一个
- YARN: 签名验证时出错