package-lock.json导致npm install安装nyc出现超时错误

一、背景

前端项目在npm install安装依赖,无法下载组件nyc,详细报错信息:

npm ERR! code CERT_HAS_EXPIRED
npm ERR! errno CERT_HAS_EXPIRED
npm ERR! request to https://registry.npm.taobao.org/nyc/download/nyc-13.3.0.tgz?cache=0&sync_timestamp=1577063702985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnyc%2Fdownload%2Fnyc-13.3.0.tgz failed, reason: certificate has expired

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/xxx/.npm/_logs/2024-05-15T07_47_05_922Z-debug.log

访问网址https://registry.npm.taobao.org/nyc/download/nyc-13.3.0.tgz?cache=0&sync_timestamp=1577063702985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnyc%2Fdownload%2Fnyc-13.3.0.tgz,出现证书过期的提示,见下:

在这里插入图片描述

这里有个背景需要交待一下:

我们对前端依赖建立了私有仓库nexus,但是这里并没有走私有仓库,仍旧使用了淘宝镜像仓库registry.npm.taobao.org。

二、npm build流程图

在这里插入图片描述

nodejs应用程序配置了私有仓库,期望所有的依赖都走私有仓库。

npm config set registry http://192.168.xx.xx:8080/repository/npm-xx-public/

但是,从报错信息可以得知,npm install的时候实际上是直接请求registry.npm.taobao.org。

这是因为本地已有package-lock.json文件,指明了下载nyc的请求地址。
在这里插入图片描述

下一步,我们到nexus私有仓库看一看nyc组件。。

三、nexus Npm私有仓库

在这里插入图片描述
在这里插入图片描述
由此可知,nexus私有仓库已有nyc组件,且是从淘宝镜像仓库下载而来。

那么,怎么去解决npm install不从私有仓库下载依赖的问题呢?

四、解决问题

1、解决办法1-删掉package-lock.json,重新安装

它会生成一个新的package-lock.json文件

在这里插入图片描述

2、解决办法2-安装的时候指定仓库

npm install --registry http://192.168.xx.xx:8080/repository/npm-xx-public/

你也可以在package.json对此进行封装,放入scripts脚本。

在这里插入图片描述
执行安装命令: npm run xx
xx是你的scripts脚本名。

五、总结

本文讲述了一个安装nyc依赖出现异常的案例,yarn 安装 也是类似的道理。
不同的是,yarn安装后生成的文件是yarn.lock,npm安装后生成的文件是package-lock.json

最好的处理方式就是忽略yarn.lock和package-lock.json文件,确保设置的私有仓库地址总是有效。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值