求助,大家 node.js 是怎么代理的

14 天前
 ylh1024

开源项目每次下下来都要改代码去代理。配环境变量 https_proxy ,wsproxy ,clash 全局都没用。 都得改代码才能走代理。 特别是 ws 的 更麻烦,还走走 socks5 协议;

1776 次点击
所在节点    Node.js
10 条回复
ylh1024
14 天前
补充一下,mac 和 window+wsl 环境里都遇到过这样的问题,系统代理,tun 都打开了
Ketteiron
14 天前
fetch/request 请求不会看环境变量,也不会被系统代理接管,只能写 agent 。tun 模式应该是有效的,我不知道你失效的原因是什么。

最简单的方案是升级到新版 nodejs ,目前支持 NODE_USE_ENV_PROXY=1 开启,具体查看
https://github.com/nodejs/node/issues/57872
alansfinal
14 天前
tun 模式没起作用,沿着这个思路排查。开了 tun 不需要开系统代理。
iamwin
14 天前
nodejs 不是能正常走 https_proxy 和 http_proxy 的吗,我现在用 bun 好像也没遇到过依赖包下不下来的情况

实在不行试试用这个接你的代理 https://github.com/tun2proxy/tun2proxy
ntedshen
14 天前
全局代理最低要 24.5.0 ,24lts 也要更新才有
要么等 26lts 或者 latest
UnluckyNinja
14 天前
“Proxy settings are often provided via environment variables such as HTTP_PROXY, HTTPS_PROXY, and NO_PROXY. Node.js supports these when NODE_USE_ENV_PROXY or --use-env-proxy is enabled. This works with node:http and node:https (v22.21.0 or v24.5.0+) methods as well as fetch() (v22.21.0 or v24.0.0+).”
官方文档,最低 22.21.0 。包管理器的代理是另一回事
ylh1024
13 天前
怪不得问 llm 问不出来 估计 node 的全局特性太新了还没训进去 一会 try 一 try
@UnluckyNinja
@ntedshen
@Ketteiron
pckillers
13 天前
从 node12 到现在 node 一直跑在 docker desktop 里的容器里 。然后 docker desktop 开启代理后 node 也就有代理了。 看到这个帖才知道 node 竟然一直以来不支持全局代理
wwhontheway
13 天前
ai 帮我写了个 proxy-preload.js 脚本。任何 node 进程启动前先强制加载运行这个脚本。这样也不会去改代码本身
AlynxZhou
13 天前
不支持环境变量的就 proxychains 呗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/1192291

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX