问题
在 Windows 系统中使用 Windows PowerShell 执行 yarn 命令,报错为:
yarn : 无法加载文件 C:\Users[UserName]\AppData\Roaming\npm\yarn.ps1
,因为在此系统上禁止运行脚本。
原因
PowerShell
执行策略,默认设置为Restricted
不加载配置文件或运行脚本。
解决办法
运行 Windows PowerShell
(管理员),执行命令 set-ExecutionPolicy RemoteSigned
更改 PowerShell 执行策略,过程中提示询问是否要更改执行策略?,选择 A 或 Y 。如下图:
bash
set-ExecutionPolicy RemoteSigned
说明
Set-ExecutionPolicy RemoteSigned
是一个 PowerShell
命令,用于更改 PowerShell
脚本的执行策略。这个特定的设置允许你运行本地创建的脚本,而从 Internet 下载的脚本必须有一个数字签名才能运行。
这里是各种执行策略的简要概述:
Restricted
:这是默认设置,不允许运行任何 PowerShell 脚本。
AllSigned
:只允许运行经过数字签名的脚本。
RemoteSigned
:允许运行本地创建的脚本。从 Internet 下载的脚本必须有一个数字签名才能运行。
Unrestricted
:允许运行所有脚本。
使用 Set-ExecutionPolicy
命令更改执行策略可能会增加安全风险。例如,设置为 Unrestricted
将允许任何脚本运行,这可能会暴露系统于潜在的恶意软件攻击。
因此,在更改执行策略之前,最好确保你了解其含义和潜在的安全影响,并确保你只运行来自可信来源的脚本。
要以管理员权限运行这个命令,你需要打开一个以管理员身份运行的 PowerShell 窗口。然后,你可以输入 Set-ExecutionPolicy RemoteSigned
并按 Enter
。可能会有一个提示,要求你确认更改,按照指示进行即可。