vscode终端无法访问npm registry是因为未显式配置代理环境变量,需在settings.json中为各系统设置terminal.integrated.env.*包含http_proxy、https_proxy和no_proxy,并重启vscode;调试时还需在launch.json的env字段重复声明。

VSCode终端无法访问npm registry?先确认代理是否真生效
VSCode内置终端不自动继承系统或shell的HTTP代理设置,哪怕你在命令行里curl -x http://127.0.0.1:7890 https://registry.npmjs.org能通,VSCode里npm install仍可能超时或403。这不是网络问题,是环境变量没注入到VSCode进程里。
terminal.integrated.env.* 必须显式注入HTTP_PROXY和HTTPS_PROXY
VSCode不会读取~/.zshrc或Windows系统变量里的代理配置,必须手动在settings.json中补全。漏掉HTTPS_PROXY会导致npm install失败(npm默认走HTTPS);漏掉NO_PROXY则内网请求被错误转发。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 全局配置(所有项目):打开VSCode设置,搜索
terminal.integrated.env,编辑settings.json,添加:
{
"terminal.integrated.env.windows": {
"HTTP_PROXY": "http://127.0.0.1:7890",
"HTTPS_PROXY": "http://127.0.0.1:7890",
"NO_PROXY": "localhost,127.0.0.1,.internal.company.com"
},
"terminal.integrated.env.linux": { ... },
"terminal.integrated.env.osx": { ... }
}
- 路径中的端口必须与你本地代理工具(如Clash、Charles)监听端口一致
-
NO_PROXY值用逗号分隔,不支持通配符(*.company.com无效),需写成.company.com - 改完保存后,必须彻底关闭所有VSCode窗口再重启,否则环境变量不加载
npm config set proxy 和 VSCode代理是两套逻辑
你在终端执行npm config set proxy http://127.0.0.1:7890只影响npm命令本身,不影响VSCode调试器启动的node进程,也不影响code-runner插件执行的node命令。如果调试时Node.js代码里用fetch或axios发请求失败,那是运行时环境缺代理,不是npm的问题。
- Node.js运行时代理需靠环境变量:
HTTP_PROXY和HTTPS_PROXY必须在launch.json的env字段里重复声明 - 例如调试一个调用API的服务:
{
"configurations": [{
"type": "pwa-node",
"request": "launch",
"name": "Launch Server",
"program": "${workspaceFolder}/src/server.js",
"env": {
"HTTP_PROXY": "http://127.0.0.1:7890",
"HTTPS_PROXY": "http://127.0.0.1:7890"
}
}]
}
-
env字段只对当前调试会话生效,不污染终端 - 若用
nodemon启动,需在nodemon.json里加"env"块,或直接在launch.json里设runtimeExecutable为nodemon并传参
代理配置容易被忽略的细节
代理地址写错斜杠方向、混用http和https协议、漏掉NO_PROXY导致内网服务连不上——这些问题都不会报明确错误,只会表现为“连接超时”或“证书错误”,排查时要盯住HTTP_PROXY值本身是否被正确传递到进程环境里。
- 验证方式:在VSCode终端运行
echo $HTTP_PROXY(macOS/Linux)或echo %HTTP_PROXY%(Windows),输出应与配置一致 - Node.js进程内检查:
console.log(process.env.HTTP_PROXY),必须有值才真正生效 - 代理工具(如Clash)需开启“允许来自局域网的连接”,否则VSCode里起的Node进程无法反向连接










