npm 安装私库包报错:请求地址错误 | 请求包错误

文章描述了一位开发者遇到npm安装私库包时请求错误的旧地址导致安装失败的问题。经过一系列试错,包括重置npm配置、删除.npmrc文件、清除缓存、卸载重装npm和node,最终发现是系统目录下的package.json和package-lock.json文件导致的问题。删除这两个文件后,重新执行npminstall解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

npm 安装私库包报错:请求地址错误 | 请求包错误

在一次创建完 npm 私库之后,上传 npm 包没问题,但是下载一直出错。

老是请求一个旧的地址下载某个库,而那个地址已经停用了,因此请求很多次之后,npm 提示安装失败。

在这里插入图片描述

这个问题困扰了几乎一天的时间,网络搜索几乎也找不到合适的解决办法。

清缓存、卸载 node 重装都不好使,后来才偶然解决。

这里记录一下,有类似问题的网友可以尝试一下。

本文包括 错误信息、试错过程以及解决办法 三部分。

私库由 JFrog Artifactory 构建。

在这里插入图片描述


错误信息

项目安装私库包地址(这里为了方便显示的 127.0.0.1):

npm install test-cesium-api --registry http://127.0.0.1:8081/artifactory/api/npm/npm_virtual_webgis/

报错时莫名其妙请求的地址(导致请求超时报错):

npm ERR! network request to http://某个域名.com:8081/repository/npm-public

部分报错信息(报错信息中这些包,私库的包根本没有引入,莫名其妙的下载):

461 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@mapbox\\point-geometry' ]
462 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@mapbox\\unitbezier' ]
463 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@protobufjs\\aspromise' ]
464 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@protobufjs\\base64' ]
465 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@protobufjs\\eventemitter' ]
466 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@protobufjs\\fetch' ]
467 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@protobufjs\\codegen' ]
468 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@protobufjs\\float' ]
469 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@protobufjs\\inquire' ]
470 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@protobufjs\\path' ]
471 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@protobufjs\\pool' ]
472 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@protobufjs\\utf8' ]
473 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@turf\\along' ]
474 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@turf\\area' ]
475 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@turf\\angle' ]
476 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@turf\\bbox' ]
477 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@turf\\bbox-polygon' ]
478 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@turf\\bbox-clip' ]
479 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@turf\\bearing' ]
480 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@turf\\bezier-spline' ]
481 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@turf\\boolean-contains' ]
482 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@turf\\boolean-clockwise' ]
483 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@turf\\boolean-crosses' ]
484 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@turf\\boolean-disjoint' ]
485 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@turf\\boolean-equal' ]
486 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@turf\\boolean-overlap' ]
487 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@turf\\boolean-intersects' ]
488 silly reify mark retired [ 'C:\\Users\\Administrator\\node_modules\\@turf\\boolean-parallel' ]
3351 verbose unfinished npm timer reifyNode:node_modules/arr-flatten 1687153998673
3352 verbose unfinished npm timer reifyNode:node_modules/aproba 1687153998673
3353 verbose unfinished npm timer reifyNode:node_modules/arr-diff 1687153998673
3354 verbose unfinished npm timer reifyNode:node_modules/accepts 1687153998673
3355 verbose unfinished npm timer reifyNode:node_modules/ansi-styles 1687153998673
3356 verbose unfinished npm timer reifyNode:node_modules/ansi-regex 1687153998673
3357 verbose unfinished npm timer reifyNode:node_modules/ansi-escapes 1687153998673
3358 verbose unfinished npm timer reifyNode:node_modules/ajv-keywords 1687153998673
3359 verbose unfinished npm timer reifyNode:node_modules/ajv-errors 1687153998675
3360 verbose unfinished npm timer reifyNode:node_modules/ajv 1687153998675
3361 verbose unfinished npm timer reifyNode:node_modules/acorn 1687153998675
3362 verbose code 1
3363 error A complete log of this run can be found in:
3363 error     C:\Users\Administrator\AppData\Local\npm-cache\_logs\2023-06-19T05_53_16_173Z-debug-0.log

导致 npm 安装失败的根本性问题:

npm WARN deprecated @petamoriken/float16@1.1.1: critical bug fixed in v3.1.1
npm ERR! code ETIMEDOUT
npm ERR! syscall connect
npm ERR! errno ETIMEDOUT
npm ERR! network request to http://某个域名.com:8080/repository/npm-public/zrender/-/zrender-4.3.2.tgz failed, reason: connect ETIMEDOUT 111.164.191.6:21888
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help config'

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Administrator\AppData\Local\npm-cache\_logs\2023-06-19T06_05_20_043Z-debug-0.log

JFrog Artifactory 报错:

在这里插入图片描述

npm 输出的错误日志:

在这里插入图片描述


试错过程

在差不多一天的时间中,尝试的各种措施:

1. 重置 npm config 配置(cache、prefix、registry )

首先想到的是,npm 配置问题,导致请求莫名其妙的地址,于是尝试还原配置,结果无效。

参考博客:npm查看源地址以及更换源地址

2. 删除 C:\Users\Administrator.npmrc

由于提示被覆写,因此,将 .npmrc 删除,结果还是无效。

在这里插入图片描述

3. 清除缓存:执行:npm cache clean --force 报错,于是执行:npm cache verify

接下来就想到了,是不是有缓存。

经尝试,清除了本地缓存,也清除了服务端(JFrog Artifactory)缓存,均不生效。

这里有坑,需要使用最新的命令清除缓存

参考博客:npm 清理缓存命令 【最新的】

4. 卸载重装 npm 和 node

这回没其他办法了,只有卸载重装 npm 和 node 了。

本来想着可以使用 360 卸载,结果好像是绿色版,需要手动清理环境变量、注册表等,手动删除所有相关文件以及文件夹。

参考博客:

nodejs的卸载及重装

NodeJS 从安装到卸载再到重装

在这里插入图片描述

在这里插入图片描述

5. 全局搜索 package.json,并删除,执行安装,解决问题!

本来几乎要放弃了,后来一想,npm 安装是依据 package.json 的配置来下载安装的。

然后全局搜了一下 package.json 文件,发现 C:\Windows\System32 下居然有一个 package.json 和 package-lock.json!!!

后来搜索得知,这个文件是必须得,也是 npm 自动生成的。

打开 package.json 和 package-lock.json 发现问题所在,原来这里边有之前下载私库的地址

因此,每次下载私库,都会执行这个 package.json 去下载之前的私库,而那个私库的地址已经被弃用了,导致请求多次失败之后引起 npm 报错!!!

在这里插入图片描述


解决办法

弄清楚问题,解决就很简单了,删除 package.json 和 package-lock.json

执行 npm i 即可,会自动生成干净的 package 文件。

重新安装私库,成功!!!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非科班Java出身GISer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值