目前遇到的问题是在设置代理的情况下,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 1
用户目录 /.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 1
nrm 解君愁
|
23
skybig 2022-11-25 15:35:51 +08:00
如果是自己电脑,可以用 clash 。tun 模式下本机流量都走代理,不用改源,更新很方便。
|
24
wangsd 2022-11-25 15:50:41 +08:00 1
可以换成腾讯的源 npm config set registry http://mirrors.cloud.tencent.com/npm/
|
25
nieyujiang 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 1
直接在命令行运行 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 1
如果是 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 |