当前位置:   article > 正文

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

npm install error package-lock.json

一、背景

前端项目在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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

访问网址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/
  • 1

但是,从报错信息可以得知,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/
  • 1

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

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

五、总结

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/853302
推荐阅读
相关标签
  

闽ICP备14008679号