npm install ERR_INVALID_URL错误

我在terminal中设置了proxy后,开启proxyon后,执行npm install包错误:

(proxyon是通过在~/.zshrc 中添加export http_proxy来实现的)

 把proxyoff后,错误又没有了,不知道是啥问题。如果碰到这个问题就用:

npm config set proxy http://127.0.0.1:1087
npm config set https-proxy http://127.0.0.1:1087  (这个可能可以不要)

如果删除,可以用:

npm config rm proxy

npm config rm https-proxy

查询npm config的命令:npm config ls -l

后来又有这个错误:503 Too many open connections (可能是npm产生了大量的连接,我的proxy支持不了这么多连接), 参考:https://blog.csdn.net/saxihuangxing/article/details/108538337

 加上 --maxsockets=1, npm install --maxsockets=1

 

下面的文章可能有作用:

https://weekendprojects.dev/posts/how-to-fix-npm-err_invalid_url/#:~:text=The%20%E2%80%9CNPM%20ERR_INVALID_URL%E2%80%9D%20error%20occurs%20when%20there%E2%80%99s%20an,again%20Verify%20you%20are%20using%20the%20correct%20registry

-----------------------------------------------------------------------------

实在不行就换成淘宝的地址源:

npm config set registry https://registry.npm.taobao.org
npm info underscore (如果上面配置正确这个命令会有字符串response)

原来的源: npm config set registry https://registry.npmjs.org/

npm config get registry

 ---------------------- 这个错误的根本原因 --------------------------------

错误的根本原因是:我的~/.zshrc中的http_proxy和https_proxy设置的是127.0.0.1:port, 而nodejs的有些包直接读取了这个值,然后用了nodejs的url方法,结果就错误了,错误代码为:

const parsedProxy = (typeof proxy === 'string') ? new url.URL(proxy) : proxy。 (node库的make-fetch-happen这个组件中的agent.js报错的)

修复方式:把http_proxy改成http://127.0.0.1:port就可以了。

posted @ 2023-05-30 12:34  saaspeter  阅读(2287)  评论(0编辑  收藏  举报