vscode中node脚本跑不起来90%非权限问题,而是powershell执行策略拦截(报“running scripts is disabled”)或npm全局安装路径受保护(eacces),应运行set-executionpolicy remotesigned -scope currentuser并配置npm prefix至用户目录解决。

VSCode 里 Node 脚本跑不起来,90% 不是权限问题,而是 PowerShell 执行策略或 npm 全局路径配置错了——直接提权 VSCode 或敲 sudo npm install -g 反而会埋雷。
PowerShell 执行策略拦截 .ps1 脚本
你在终端运行 npm start 或双击执行 build.ps1 时看到 “File build.ps1 cannot be loaded because running scripts is disabled”,这不是 Node 没装好,也不是文件没权限,是 Windows 默认禁止本地脚本执行。
- 在 VSCode 终端中直接运行:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser(无需管理员) - 验证是否生效:
Get-ExecutionPolicy -Scope CurrentUser应返回RemoteSigned - 必须关闭所有已打开的终端面板(
Ctrl+Shift+`关掉全部),再新建一个——旧终端不会自动刷新策略 - 别用
Unrestricted或Bypass,尤其在公司设备上,组策略可能随时覆盖重置
npm install -g 报 EACCES / Permission denied
错误信息里出现 /usr/local/lib/node_modules(macOS/Linux)或 C:\Program Files\nodejs\node_modules(Windows),说明 npm 正试图往系统级目录写文件,而普通用户无权访问。这不是 VSCode 的锅,是 npm 默认配置路径太激进。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- macOS/Linux:运行
npm config set prefix ~/.local,再把~/.local/bin加进$PATH(修改~/.zshrc或~/.bashrc) - Windows:运行
npm config set prefix %USERPROFILE%\AppData\Roaming\npm,并确认该路径已在系统PATH中 - 之后所有
npm install -g都会写入用户目录,不再触发拦截 - 绝对不要在 VSCode 终端里敲
sudo npm install -g——npm 会以 root 身份执行任意preinstall脚本,风险极高
VSCode 终端里 node -v 失败但 which npm 有输出
这说明终端环境没加载完整,常见于 VSCode 启动时未读取 shell 配置文件(比如 ~/.zshrc),导致 node 和 npm 路径不一致,甚至找不到 node。
- 检查
which node和which npm是否指向同一套 Node.js(例如都来自 Homebrew 或官网 pkg) - 在 VSCode 终端手动执行
source ~/.zshrc(macOS)或source ~/.bashrc(Linux),再试node -v - 更彻底的解法:在 VSCode 设置里搜
terminal.integrated.shellArgs.osx(macOS)或对应 Linux 项),设为["-i"],让 shell 以交互模式启动,自动加载配置 - 如果用了
nvm,确保~/.nvm/nvm.sh已在~/.zshrc中正确source,且没有被return提前中断
Node 安装路径含空格或中文导致 require() 失败
VSCode 的调试器(js-debug)对路径编码极敏感。哪怕只是 /Applications/Visual Studio Code.app 这种带空格的路径,也可能触发 Cannot find module;若 Node 安装在中文路径(如 /Users/张三/Downloads/node-v18.17.0-darwin-arm64),require() 会直接失败。
- 运行
which node,确认输出路径是否纯英文、无空格、无中文字符 - 如果来自官网 pkg,默认装在
/usr/local/bin/node,没问题;如果手动解压到桌面或下载目录,务必挪到/usr/local或~/bin这类标准路径 - WSL 用户注意:
/mnt/c/下的 Node 安装包可能因 NTFS 权限缺失导致模块加载异常,优先移至~/原生路径
真正容易被忽略的是:VSCode 终端的权限上下文是“继承式”的——它不是独立沙盒,一旦你误用 sudo code 或管理员快捷方式启动过一次,后续生成的 .vscode/ 目录、node_modules、甚至调试缓存都可能被 root 写入,普通用户再打开项目就会连锁报错。修复比预防难得多。










