
目前遇到的问题是在设置代理的情况下,npm install 命令一直失败,原因找了下貌似是 https 连接的问题, 我是通过.zshrc 文件来指向本地的代理地址,通过这个地址指向我的 ss 代理。
以下是设置其一
export http_proxy="http://127.0.0.1:1087" export https_proxy="http://127.0.0.1:1087" 第二种设置是指向 socks5 本地地址,然后都失败了。
curl 和 brew 命令都正常。
目前唯一有用的方法是将 npm 的仓库地址指向为 http 地址
npm config set registry http://registry.npmjs.org 虽然可以用,但是每次安装包都会发出警告,这就很烦了,大佬们是怎么搞定的。
npm notice Beginning October 4, 2021, all connections to the npm registry - including for package installation - must use TLS 1.2 or higher. You are currently using plaintext http to connect. Please visit the GitHub blog for more information: https://github.blog/2021-08-23-npm-registry-deprecating-tls-1-0-tls-1-1/ npm notice Beginning October 4, 2021, all connections to the npm registry - including for package installation - must use TLS 1.2 or higher. You are currently using plaintext http to connect. Please visit the GitHub blog for more information: https://github.blog/2021-08-23-npm-registry-deprecating-tls-1-0-tls-1-1/ 1 coffeedeveloper 2022-11-25 14:04:30 +08:00 你可以直接用 CNPM ,或者用阿里的国内镜像 ( https://npmmirror.com/)[https://npmmirror.com/] |
2 beisilu 2022-11-25 14:09:13 +08:00 warning 而已,能用就行 |
3 ChrisFreeMan OP @coffeedeveloper 多谢回复,这个将作为我的替代方案。 |
4 ChrisFreeMan OP @beisilu warning 好难受。 |
5 Musong 2022-11-25 14:11:25 +08:00 ``` npm config set strict-ssl false ``` 这个呢?能好使不? |
6 ChrisFreeMan OP @Musong 单独用它还不行,这个就是和上面那个指向 http 仓库的设置一起用的。 |
7 shintendo 2022-11-25 14:13:56 +08:00 用户目录 /.npmrc 文件,写上淘宝镜像和常见二进制包镜像,解决 99%场景,参考 https://gist.github.com/niaodan2b/258909bf2e6249ada57d51b58184f067 不建议用 cnpm ,cnpm 和 npm 的行为不一样的 |
8 ChrisFreeMan OP @shintendo 多谢,又多了好多配置啊,太难了。就没有更方便的办法了吗。 |
9 FightPig 2022-11-25 14:19:19 +08:00 @coffeedeveloper 不知道啥情况,有的 npm 包更新好久了,淘宝的镜像却找不到版本, |
10 shintendo 2022-11-25 14:19:52 +08:00 @ChrisFreeMan ?不需要其它配置呀,就这个文件内容改成我这样就行了。不用手动设置镜像,也不用设置代理。 |
11 pathletboy 2022-11-25 14:20:46 +08:00 要不试试 proxychains4 ? |
12 ChrisFreeMan OP @shintendo 好,我先收藏了,可以拿来应急也挺好的 |
13 ChrisFreeMan OP @pathletboy 这种外挂软件的方式想过了,主要不太想用,主要是我觉得很奇怪,因为 pip 、git 、cur 、brew 之类的都没有这样的问题,所以想问下大家有没有办法,我也不太喜欢太多配置。 |
14 kongkx 2022-11-25 15:04:06 +08:00 via iPhone 设置 .npmrc proxy=http://127.0.0.1:1087 |
15 ChrisFreeMan OP @kongkx 这个和在 zshrc 终端环境配置里的代理设置是一样的,我都试过了。 |
16 imMetaverse 2022-11-25 15:14:42 +08:00 一般在终端上 export http_proxy=http://127.0.0.1:1087 export https_proxy=http://127.0.0.1:1087 设置后 就行 关闭后失效 |
17 eason1874 2022-11-25 15:16:05 +08:00 我是修改 npm 设置,像这样 npm config set proxy=http://127.0.0.1:1087 |
18 ChrisFreeMan OP @eason1874 @imMetaverse export http_proxy=http://127.0.0.1:1087 写入到终端环境和 npm config set proxy=http://127.0.0.1:1087 都是一样的,没有区别,一个是全局终端环境,一个是针对 npm 的。 |
19 gqbre 2022-11-25 15:27:49 +08:00 不用对 npm 设代理,直接全局 .npmrc 设置为淘宝源就好了。有切换需求可以上 nrm |
20 kongkx 2022-11-25 15:32:37 +08:00 via iPhone @ChrisFreeMan 最好 verbose 看看是哪里的问题 |
21 imMetaverse 2022-11-25 15:34:35 +08:00 @ChrisFreeMan 我一般这样就可以的 我一般不用全局 |
22 Kenmin 2022-11-25 15:34:42 +08:00 nrm 解君愁 |
23 skybig 2022-11-25 15:35:51 +08:00 如果是自己电脑,可以用 clash 。tun 模式下本机流量都走代理,不用改源,更新很方便。 |
24 wangsd 2022-11-25 15:50:41 +08:00 可以换成腾讯的源 npm config set registry http://mirrors.cloud.tencent.com/npm/ |
25 ZeoKarl 2022-11-25 16:07:01 +08:00 clashx pro 的增强模式.然后把终端的 export 设置代理干掉. |
26 shakukansp 2022-11-25 16:10:01 +08:00 npm 不支持 socks5 |
27 cnhongwei 2022-11-25 16:13:50 +08:00 如果你的 1087 是 socks5 代理的话,按资料说的 npm 不支持 socks5 代理,你应使用 http 及 https 代理。你看一下你的软件,大部分软件都支持 socks5 和 http(s)代理,只是端口不一致而已,如果软件不支持 https 代理,那就使用一个把 socks5 转 https 代理的软件。 |
28 Huelse 2022-11-25 16:17:18 +08:00 |
29 yohole 2022-11-25 16:30:10 +08:00 这个问题劝退了无数新手,包括我因为这个推迟了很久才接触了 node ,很伤感 |
30 sukidesuka 2022-11-25 16:40:14 +08:00 一般 200 块钱买个软路由,然后上面跑个 shellclash |
31 lovepplforever 2022-11-25 16:43:03 +08:00 nodejs 的 http 没有实现环境变量 http_proxy 代理的功能 |
32 antonius 2022-11-25 16:48:56 +08:00 很久没写 js 了。以前安装 nrm 然后设置 repo ,选择国内的即可。要么设置 proxy 。 |
33 ChrisFreeMan OP 我刚刚试了下 deno 创建 reac 的项目的速度,brew install deno 然后走流程 https://deno.land/x/[email protected] 整个过程 1 分钟不到,我哭了,这才是我想要的啊。node 折腾几天了,要是 deno 生态能起来就好了 |
34 ragnaroks 2022-11-25 17:09:47 +08:00 每个项目根目录中放置 ".npmrc" 文件,内容样例 save-exact = true registry = "https://registry.npmmirror.com" 你的报错是因为你使用了普通 HTTP 请求,它让你用 HTTPS 。 |
35 ysc3839 2022-11-25 17:12:47 +08:00 我最近遇到不支持 SOCKS 代理的程序,又不方便弄路由器全局代理,最后选择的方案是 sniproxy+socks ,可以看看这个项目 https://github.com/NiceLabs/go-sniproxy |
36 hevi 2022-11-25 17:13:40 +08:00 直接本机代理配好一把梭? npm config set proxy="http://ip:port" |
37 star7th 2022-11-25 17:16:48 +08:00 直接在命令行运行 npm config set registry https://registry.npmmirror.com 不要再折腾! 不要再折腾! 别听其他乱七八糟的建议。 鉴于你能提出这个问题,估计是个新手。对新手来讲,直接执行我上面说的命令就是最省事的方式。也不用去追究什么原理。 |
38 star7th 2022-11-25 17:17:46 +08:00 这个命令放在笔记里记着。每到一个环境,无论是本机还是服务器,都用得上。 |
39 star7th 2022-11-25 17:19:08 +08:00 多年 nodejs 开发人员路过。别折腾什么走代理的方式。设置 llinux 代理可能会影响到其他程序访问网络。 |
40 IvanLi127 2022-11-25 17:32:29 +08:00 有条件的话在你的设备和上级网络中间加一个网关做代理,没条件的在设备上跑一个支持全局代理的软件。一个个软件配代理烦死人 |
41 lisxour 2022-11-25 17:39:06 +08:00 @FightPig 国内镜像多多少少(不管是 npm 还是啥镜像还是谁家的)都有这样的毛病,都声称的秒级、分钟级同步,但实际却依然很容易碰到缺库、版本低问题。我用过的 npm 、packgist 、golang 、ubuntu 等都实实在在碰到过。 |
43 hsfzxjy 2022-11-25 17:44:16 +08:00 via Android 我都是直接 proxychains4 ,从没遇到问题 |
44 wu67 2022-11-25 17:47:53 +08:00 https://registry.npmmirror.com/ 用这个. 反正我这用得好好的, 联通 4/5G 和电信宽带都正常用 |
45 Snowei 2022-11-25 17:50:39 +08:00 1 、pac.js 填入 npm 的地址 2 、开全局模式 |
46 bakaft 2022-11-25 18:24:53 +08:00 如果是 Windows 平台,可以用 Clash 的 TUN 模式把所有流量转发到一个虚拟网卡,很方便。这样还可以顺带解决 WSL2 和 WSL2 内容器的代理问题,一步到位。 |
47 superrichman 2022-11-25 18:33:37 +08:00 via Android proxychains 包治百病 |
48 lisongeee 2022-11-25 18:38:17 +08:00 https://registry.npmmirror.com 在 pnpm 生成的 lock 文件在 https://registry.npmjs.org/ 再次安装会出现某些包链接 404 的情况,最好不要混用镜像 问题复现示例 [jobs/5774239890]( https://github.com/lisonge/vite-plugin-monkey/actions/runs/3459144614/jobs/5774239890) |
49 kwh 2022-11-25 20:37:29 +08:00 export http_proxy="http://127.0.0.1:1087" 只配置这个地址不配置 https 试一试? |
50 hamsterbase 2022-11-25 21:39:44 +08:00 npm i -g nrm nrm use taobao nrm use tencent |
51 HugoChao 2022-11-25 21:59:44 +08:00 国内的话换淘宝镜像基本都可以解决 顽固的项目我推荐手机热点,真的飞快 |
52 zsj1029 2022-11-25 23:07:32 +08:00 via iPhone 当然是 pnpm |
53 butanediol2d 2022-11-25 23:37:21 +08:00 没有一项规定要求软件从环境变量获取代理设置一定用的是 http_proxy 和 https_proxy 。 有的软件认大写,有的认小写,有的都认,有的都不认。具体软件具体分析。 |
54 systemcall 2022-11-26 00:57:40 +08:00 via Android 你要是在家的话,直接弄个软路由不就行了?路由器上面跑代理,电脑上什么代理软件都不需要 |
55 humbass 2022-11-26 01:00:31 +08:00 完美的解决方法是: 挂一个路由器,路由执行科学上网,国外 IP 一律代理,本机不需要做任何设置; |
56 bthulu 2022-11-26 08:57:45 +08:00 还是挂代理, 国内镜像多多少少都有缺库, 版本对不上的问题 |
57 sunmker 2022-11-26 10:07:29 +08:00 路由器上代理,很方便的 |
58 zxCoder 2022-11-26 11:17:01 +08:00 tun 模式 |
59 n18255447846 2022-11-26 11:53:33 +08:00 npm config set proxy |
60 mmdsun 2022-11-26 18:18:37 +08:00 tun 模式 或者 (推荐)路由器上直接安装代理软件,这样连接的所有设备都可以代理 |
61 ChrisFreeMan OP |