npm与cnpm相互切换

今天主要是来聊一聊关于 npm 的管理这个话题。

前情提要:当前操作基于 Mac 系统,Windows 系统下未做验证。

那什么是 npm 呢?
NPM的全称是Node Package Manager,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。
你可以这样理解:npm 呢就像是个管家,管理着 nodejs 的所有包(也就是资源)。

那为什么存在 npm 和 cnpm 转换的话题呢?

npm 这个管家,他的服务器在国外,国内访问有时就会比较慢,所以,乐于分享的 淘宝团队(感谢淘宝团队的无私贡献)做了一件事,做了 npm 镜像站在国内,感兴趣的朋友可以去官网看看。
npm 镜像站官网:“这是一个完整 npmjs.com 镜像,你可以用此代替官方版本(只读),我们将尽量与官方服务实时同步。”

实时同步时间,分钟级别,再次感谢淘宝团队的无私奉献。这跟某些博客网站逐渐要收费(不要脸)来看完整博客,形成了鲜明对比!

你可以通过多种方式来修改镜像源:

一,cnpm

我们可以使用 淘宝 定制的cnpm命令行工具代替默认的 npm,这样的话,以后你在每次要执行 npm 相关的操作时,要换成 cnpm 来执行。
我的理解,这样做的好处是提醒自己,我切换了 npm 的镜像源为淘宝提供的镜像源。
但是,使用 cnpm 时需要注意:淘宝镜像源官网“cnpm 支持除了相关操作外的所有命令,例如 install、info、view 等。”

打开终端, 输入以下指令,即可实现上述操作。

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

二,直接通过添加 npm 参数 alias 一个新命令

坦白讲,这种方式我没操作过,个人不喜欢这种配置参数的方式,因为时间长了,我自己就会忘记有没有配置什么参数,特别是在频繁切换 公司电脑 和 个人电脑 的使用环境下,更容易混淆。
这种方式的终端指令为:

alias cnpm="npm --registry=https://registry.npmmirror.com \ --cache=$HOME/.npm/.cache/cnpm \ --disturl=https://npmmirror.com/mirrors/node \ --userconfig=$HOME/.cnpmrc"

三,切换 npm 镜像源地址

这种方式,以后你还是使用 npm 来执行相关操作,只是切换镜像源为 淘宝镜像源了。
终端指令:

npm config set registry https://registry.npmmirror.com

想要再切换回 npm 自己默认的镜像源的话,指令如下:

npm config set registry https://registry.npmjs.org

四,nrm

大家可能知道 nvm,一个 node 个版本管理工具,我这里也有一篇博客关于 nvm 使用的。
这个 nrm 干嘛的呢?专门用来管理 npm 源地址的工具。使用方式(最下方有完整操作截图):
通过以下指令安装:

npm install nrm -g

PS:个人建议,先切换 淘宝镜像源,再安装 nrm,之后再把 npm 镜像源设置为默认的源。接下来再使用 nrm 来管理 npm。
为啥呢?直接使用 npm 默认源加载 nrm 时间超长。。。

安装完成之后,可通过以下指令输出 nrm 的版本号来确认安装是否成功:

nrm -V

在这里插入图片描述

可通过如下指令查看所有源地址:

nrm ls

使用以下指令切换源地址:

nrm use XXX

可再次使用 nrm ls 查看源地址是否配置成功。
以下是我的操作截图:
在这里插入图片描述

另外,以下指令可以查看当前使用的 npm 源地址。

npm config get registry

最后,一个个人习惯:
使用 npm 默认的源地址,虽然有时会慢,大多数时候,加载时间还能接受,只有在 npm 加载特别慢时,会选择切换淘宝镜像源地址来加载,但是加载完毕之后,还是会切回 npm 的默认源地址。个人强迫症,不喜勿喷!

完整操作截图:
在这里插入图片描述

注意

使用 nvm 切换 node 版本之后,需要重新配置 nrm。
也就是说,nrm 只管理当前 node 版本下的 npm。
我是有使用 nvm 来管理 node 版本,才会有这个情况出现,如果不使用 nvm 管理 node,在 node 升级之后,是否需要再次配置 nrm 就需要朋友你自行尝试了。

本章完----

posted @ 2021-06-08 14:59  薛胖子  阅读(144)  评论(0编辑  收藏  举报  来源