在 Remote Codespaces 里启动 Node 项目时遇到脚本执行错误,别着急怀疑环境配置——绝大多数情况下,问题出在 PowerShell 的执行策略上。

终端输出这样的信息:File start.ps1 cannot be loaded because running scripts is disabled on this system。这不是 Node 环境没装好,也不是项目路径配错了——真正的原因,藏在 Codespaces 默认终端(PowerShell)沿用的 Windows Restricted 策略里。这种策略下,连本地生成的包装脚本(比如 node_modules/.bin/npm 实际是 npm.ps1)都会被静默拦截。

如何在VSCode中解决Node环境在RemoteCodespaces下权限错误

为什么 Remote Codespaces 会卡在 PowerShell 策略上

Codespaces 底层虽然是 Linux 容器,但 VSCode 远程终端默认启用了 PowerShell for Linux(通过 powershell-linux),而且策略继承自用户配置。即便容器里没安装 Windows,PowerShell 仍然按照 Restricted 模式启动,导致所有 .ps1 封装脚本无法执行。

必须执行的三步修复(无须管理员权限)

在 Codespaces 终端中依次运行以下命令:

完成后,记得关闭所有终端标签页(Ctrl+Shift+` 关掉再重新打开),再试 npm run dev。旧终端不会自动刷新策略,重启是必须的步骤。

Node 项目调试时 launch.json 报 “Cannot launch program”

这个错误经常被误判为路径不对,但实际上调试器启动链被 PowerShell 拦截了——特别是在 launch.jsonprogram 字段指向一个 shell 脚本(比如 ./scripts/start.sh)或 npm script 封装入口的时候。

真正容易被忽略的点:Codespaces 的终端策略是 per-user 的,但如果用同一个 GitHub 账号在多个 Codespace 之间切换,策略不会自动同步——每个新空间都要单独执行一次 Set-ExecutionPolicy。别指望一次设置就能永久生效。

本文转载于:https://www.php.cn/faq/2820301.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。