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 就需要朋友你自行尝试了。
本章完----