NodeJS第 4 篇,cnpm安装不上,报错,npm ERR! code CERT_HAS_EXPIRED,npm ERR! errno CERT_HAS_EXPIRED(安装cnpm报错)

本文介绍了cnpm安装失败的常见原因,主要是由于SSL证书过期导致的连接问题。解决方法包括清理npm缓存,更新淘宝NPM镜像源为https://registry.npmmirror.com,并检查和配置环境变量。
摘要由CSDN通过智能技术生成

前言

cnpm(China NPM)是由淘宝团队开发和维护的一个 npm 的镜像源。它的主要目的是为了解决,因地理位置和网络问题,导致的npm包安装速度慢和稳定性差的问题。通过使用cnpm,我们中国的开发者可以更快地安装和管理npm包。 

一. 镜像说明

首先,npm 和 cnpm都可以设置镜像,而且可以设置为使用相同的镜像(如淘宝镜像、华为镜像),从而提高在我们国家地区的下载速度,它们的主要区别和优点,请看

1. 主要区别

① npm

  • 介绍:我们都知道,npm 是 Node Package Manager 的缩写,它是一个用于 Node.js 项目的包管理和分发的工具。通过 npm,开发者可以方便地安装、分享和管理项目中使用的各种依赖包。而在使用 npm config set registry https://registry.npmmirror.com/ 命令后,可以将 npm 的默认注册源设置为淘宝镜像(npmmirror)。此后,所有使用 npm 命令(如 npm install)时,都会从这个镜像下载包。
  • 优点:提升下载速度,同时依然使用 npm 的 CLI 工具。

② cnpm

  • cnpm 是淘宝团队开发的 npm 客户端,专为中国地区的 npm 包下载设计。安装 cnpm 后,它默认使用淘宝的镜像,无需额外配置。使用方法与 npm 类似,例如直接使用 cnpm install 来安装包。
  • 优点:优化了下载体验,具备更强的容错能力和更快的速度。

npm 是原生的包管理工具,即使配置了镜像,行为依然是基于 npm 的,而 cnpm 则是为中国用户优化的独立工具,提供了更好的下载体验。

2. 环境查看

① npm

npm config get registry

该命令可用于查看当前 npm 使用的镜像源。

② cnpm

cnpm config get registry

该命令可用于查看当前 cnpm 使用的镜像源。

3. 镜像推荐

① 华为云镜像

https://repo.huaweicloud.com/repository/npm/

cnpm set registry https://repo.huaweicloud.com/repository/npm/

② 中国科学技术大学 (USTC) 镜像

https://mirrors.ustc.edu.cn/npm

cnpm set registry https://mirrors.ustc.edu.cn/npm


二. 安装问题

1. 问题场景

我们在使用cnpm命令时,需要全局安装 cnpm(China NPM Mirror)并设置淘宝的NPM镜像作为仓库地址,执行以下命令,安装相应插件,请看

npm install -g cnpm -registry=https://registry.npm.taobao.org

但有时候,我们在执行该命令,安装cnpm的时候,会遇到安装不上的情况,就像下面这种情况,请看

可以看到报错信息

npm ERR! code CERT_HAS_EXPIRED
npm ERR! errno CERT_HAS_EXPIRED

意思是当你尝试连接到npm仓库时,遇到了SSL证书过期的问题,

原因就是因为,旧的域名 https://npm.taobao.org 和 https://registry.npm.taobao.org 已经在 2022 年 5 月 31 日停止服务,需要更换新的镜像服务。

2. 配置新域名

淘宝 NPM 镜像的新域名,请看

https://registry.npmmirror.com/ 

所以,直接执行设置新域名

npm install -g cnpm -registry=https://registry.npmmirror.com

3. 问题小结

安装问题小结。如遇到以上问题,解决过程,文字描述,请看

首先,需要清空 npm缓存,然后,更换 npm镜像源地址,最后重新下载使用。若依旧安装失败,这时需要检查电脑防火墙设置,关闭防火墙后,才能下载使用


三. 重新配置

关闭防火墙后,重新下载配置,请看

1. 清除缓存

重新安装cnpm时,最好先清除npm缓存,命令如下,请看

npm cache clean --force

2. 更改镜像

然后,更改成华为云的npm镜像,命令如下,请看

npm config set registry https://mirrors.huaweicloud.com/repository/npm/ 

npm config set registry 后面加镜像源地址,表示全局配置该镜像源。

3. 查看环境

这里可通过 npm get registry 命令,查看当前环境下使用的镜像源地址,可以用来查看镜像源地址是否跟换成功

npm get registry
//或者
npm config get registry
//都可以

执行命令后,可以看到当前使用的镜像源,

4. 重新下载

设置完镜像源地址后,重新下载 cnpm,执行以下命令,请看

npm install -g cnpm

5. 检查安装

然后通过 cnpm -v(小写v)检查是否安装成功,请看

可以看到这时已经安装成功,然后就可以将npm更换成cnpm使用。

6. 常用镜像地址

这里给大家列举以下常用的镜像源地址,请看

官方源(npm registry):https://registry.npmjs.org/

淘宝NPM镜像源:https://registry.npmmirror.com/

cnpm镜像源:http://r.cnpmjs.org/

阿里云NPM镜像源:https://npm.aliyun.com/

腾讯云NPM镜像源:https://mirrors.cloud.tencent.com/npm/

华为云NPM镜像源:https://mirrors.huaweicloud.com/repository/npm/

网易NPM镜像源:https://mirrors.163.com/npm/

中国科学技术大学开源镜像站:http://mirrors.ustc.edu.cn/npm/

清华大学开源镜像站:https://mirrors.tuna.tsinghua.edu.cn/npm/

7. 命令识别问题

通常情况下,安装完 cnpm 后无需额外配置环境变量即可直接使用。然而,如果您在安装或使用过程中遇到问题,例如系统无法识别 cnpm 命令,这可能是由于环境变量配置不当或权限设置问题引起的。此时,建议检查并正确配置环境变量,或者调整相关权限设置,以确保 cnpm 能够正常运行。而cnpm配置环境变量,一般的cnpm文件地址为如下,请看

C:\Users\Administrator\AppData\Roaming\npm

8. 设置远程签名

如果cnpm安装完成后,cnpm命令,在命令提示符窗口管用,而在Vscode中不生效,则需要在PowerShell中 设置远程签名,跟Vue命令,在命令提示窗口管用,在Vscode中不生效情况,是一样的,具体的配置流程如下,请看

npm、cnpm、vue等命令在命令提示符窗口管用,在Vscode中命令不生效icon-default.png?t=O83Ahttps://blog.csdn.net/weixin_65793170/article/details/128987191?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170922812116800197041820%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=170922812116800197041820&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-8-128987191-null-null.nonecase&utm_term=vue&spm=1018.2226.3001.4450


四. 总体小结

如果在使用 npm 安装 cnpm 时,遇到问题,请首先尝试清空 npm 缓存,并更换为更快速的镜像源,如淘宝镜像、华为镜像。若问题依旧存在,这时需要检查并关闭防火墙设置,才能够下载使用。

创作不易,感觉有用,就一键三连,感谢(●'◡'●)

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

北城笑笑

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

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

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

打赏作者

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

抵扣说明:

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

余额充值