🔍 问题场景:使用 yarn 命令时报错
当您在 PowerShell 中运行 yarn 命令时(特别是创建 React/Vue 项目或安装依赖时),可能会遇到如下错误:
yarn : 无法加载文件 C:\Users\用户名\AppData\Roaming\npm\yarn.ps1
因为在此系统上禁止运行脚本...
.ps1 cannot be loaded because running scripts is disabled on this system...
错误原因分析:
- yarn 在 Windows 上通过 PowerShell 脚本 (
yarn.ps1
) 运行 - PowerShell 默认阻止所有脚本执行的安全策略
- 特别是当您首次在系统上使用 yarn 或创建新项目时容易出现
🛠️ 终极解决方案:设置执行策略
在 PowerShell 中执行以下命令:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
命令详解
参数 | 作用说明 | 对 yarn 用户的意义 |
---|---|---|
Set-ExecutionPolicy | 修改脚本执行策略的指令 | 核心解决工具 |
-Scope CurrentUser | 仅影响当前账户 | ✅ 不需要管理员权限 ✅ 不影响其他用户 |
-ExecutionPolicy RemoteSigned | 允许本地脚本运行 要求远程脚本有签名 | ✅ 允许运行本地的 yarn.ps1 ✅ 保持安全防护 |
📝 完整操作流程(解决 yarn 报错)
-
打开 PowerShell
Win + R → 输入powershell
→ 回车(无需管理员权限) -
执行修复命令
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
-
确认更改
当出现提示时输入Y
或A
:[Y] Yes [A] Yes to All [N] No ...
-
验证解决方案
# 检查当前设置 Get-ExecutionPolicy -Scope CurrentUser # 再次尝试运行 yarn yarn --version
⚠️ 关键注意事项
-
只解决脚本执行权限问题
此操作仅解除 PowerShell 对脚本的限制,如果 yarn 安装本身有问题需要另行解决 -
安全策略说明
RemoteSigned
策略意味着:- ✅ 本地脚本:如
yarn.ps1
可自由运行 - 🛡️ 网络下载脚本:必须经过数字签名验证
- 完美平衡开发便利性和系统安全性
- ✅ 本地脚本:如
-
影响范围
此设置仅对当前 Windows 用户生效,不会影响:- 系统其他用户
- 命令提示符(cmd)中的操作
- WSL/Linux子系统环境
🌟 效果验证
成功执行后,您将可以:
# 正常运行 yarn 命令
yarn create vite my-app --template react
# 执行本地 PowerShell 脚本
.\custom-script.ps1
而不再看到 禁止运行脚本
的错误提示!
💡 技术原理
当您通过 npm 全局安装 yarn 时:
npm install -g yarn
会在 %APPDATA%\npm
目录生成 yarn.ps1
文件。PowerShell 的默认 Restricted
策略阻止此类脚本运行,RemoteSigned
策略则允许本地脚本执行。