执行sanity init --coupon命令报脚本禁用错误如何修复
报错原因
Windows PowerShell默认执行策略禁止运行未受信任的本地脚本,全局安装Sanity CLI时生成的sanity.ps1启动脚本触发了该安全限制,和Sanity包本身安装是否成功无关。
修复方案
按推荐优先级从高到低选择以下任意一种方法即可:
方案1:单次会话临时放行(最安全,无永久配置修改)
在你当前运行sanity命令的PowerShell窗口中,先执行以下命令临时放开当前窗口的脚本执行权限,窗口关闭后配置自动失效,不会影响系统全局设置:Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass执行完成后直接重新运行初始化命令即可:
sanity init --coupon javascriptmastery2022方案2:当前用户永久放行(无需管理员权限,安全性可控)
如果需要长期使用Sanity CLI,不想每次开新窗口都重复设置,可以仅修改当前登录用户的执行策略:- 打开普通权限的PowerShell(不需要右键选择「以管理员身份运行」)
- 执行以下命令:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned - 弹出确认提示时输入
Y按回车确认即可
该配置仅允许本地创建的脚本自由运行,从网络下载的脚本仍需要可信签名才能执行,不会带来额外的高安全风险。配置完成后重启PowerShell,即可正常运行所有sanity命令。
方案3:跳过PowerShell脚本直接调用(无需修改任何执行策略)
如果你不想改动PowerShell的任何安全配置,可以直接通过npx调用Sanity CLI,绕开全局安装的ps1启动脚本:npx @sanity/cli init --coupon javascriptmastery2022
验证
配置完成后执行sanity --version,如果能正常输出版本号,说明修复完成,可以继续项目初始化流程。
注意:不要将全局执行策略修改为
Unrestricted,该配置会允许所有来源的脚本无提示运行,存在较高安全风险。
内容的提问来源于stack exchange,提问作者Harshdeep Singh
相关产品推荐
相关产品推荐

