前言
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 时,遇到问题,请首先尝试清空 npm 缓存,并更换为更快速的镜像源,如淘宝镜像、华为镜像。若问题依旧存在,这时需要检查并关闭防火墙设置,才能够下载使用。