npm cb() never called!和 Error: getaddrinfo ENOTFOUND registry.npmjs.com registry.npmjs.com:443

我在服务器上执行 npm i 时竟然出错了,下面是错误的提示:

npm ERR! cb() never called!

npm ERR! This is an error with npm itself. Please report this error at:
npm ERR!     <https://npm.community>

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-09-28T06_11_30_969Z-debug.log

然后我看npm不行,又用 cnpm i 结果又出现另外一个错误

Get /binary-mirror-config/latest from https://registry.npm.taobao.org error: Error: getaddrinfo ENOTFOUND registry.npmjs.com registry.npmjs.com:443
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:67:26)
Get /bug-versions/latest from https://registry.npm.taobao.org error: Error: getaddrinfo ENOTFOUND registry.npmjs.com registry.npmjs.com:443
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:67:26)

百度了好久终于找到了解决方案,这里就贴出来,参考来自 博客园–醉东风

解决

1. ping npm仓库

先测试看能不能ping通,我的服务器就是ping不通,你们的也是则继续往下看

ping registry.npmjs.org
2. 修改resolv.conf文件
vim /etc/resolv.conf
// 我服务器的 resolv.conf 文件只有下面这一行代码
options timeout:2 attempts:3 rotate single-request-reopen
3. 添加配置

我参考其他阿里云的resolv.conf文件配置发现出问题的这台服务器少了以下配置,就复制过去

; generated by /usr/sbin/dhclient-script
nameserver 100.100.2.136
nameserver 100.100.2.138

这是添加配置后的完整resolv.conf文件

options timeout:2 attempts:3 rotate single-request-reopen
; generated by /usr/sbin/dhclient-script
nameserver 100.100.2.136
nameserver 100.100.2.138

:wq 保存后再去 npm i 就成功了,没有报错了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用\[1\]和引用\[2\]的内容,出现"getaddrinfo ENOTFOUND registry.cnpmjs.org"的错误通常是由于设置了默认的仓库地址或者连接不上某个URL导致的。解决这个问题的方法如下: 1. 首先,执行以下命令检查默认的仓库地址是否为空: ``` npm config get proxy npm config get https-proxy ``` 如果返回值都为空,可以跳过下面的设置。 2. 如果返回值不为空,执行以下命令将默认的仓库地址设置为null: ``` npm config set proxy null npm config set https-proxy null ``` 3. 接下来,执行以下命令将仓库地址设置为http://registry.cnpmjs.org/: ``` npm config set registry http://registry.cnpmjs.org/ ``` 4. 安装cnpm,执行以下命令: ``` npm install -g cnpm --registry=https://registry.npm.taobao.org ``` 5. 然后,使用cnpm安装其他包。 如果以上步骤都没有解决问题,可以尝试执行以下命令更新npm: ``` npm update ``` 然后再执行"create-react-app first-react-demo"命令,如果成功创建项目,进入"first-react-demo"文件夹,打开命令行窗口并执行"npm start"命令。在浏览器中输入"localhost:3000",如果能看到页面,说明React项目的基本搭建完成了。 #### 引用[.reference_title] - *1* [【npmnpm安装报错:reason: getaddrinfo ENOTFOUND server server:80](https://blog.csdn.net/weixin_38629529/article/details/119081083)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [第一次搭建React项目以及错误:getaddrinfo ENOTFOUND registry.npmjs.org解决办法](https://blog.csdn.net/weixin_45408862/article/details/117919012)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值