由于众所周知的原因,我们的内网链接互联网时非常不稳定,速度慢而且经常下载失败。为了提高下载安装 npm 包的体验,很多人都会把 npm 的 registry 配置成国内镜像,我们一般用的比较多的就是淘宝镜像。

镜像是一种存储的形式。一个磁盘上的东西,在另一个磁盘拷贝一份一摸一样的副本,这就是镜像。

淘宝镜像是 npm 官方服务器的同步版本,所以我们从淘宝镜像获取的 npm 包等同于从官方获取 npm 包。这样做的好处是淘宝镜像也在内网,所以稳定且速度快。淘宝镜像地址: https://npm.taobao.org/

1. 配置 registry 为淘宝镜像

首先查看配置信息:

  1. $ npm config ls

注意输出信息中,有一条 metrics-registry ,默认是指向 npm 官方地址:

  1. > metrics-registry = "https://registry.npmjs.org/"

我们可以使用命令把他改成淘宝镜像地址

  1. $ npm config set registry https://registry.npm.taobao.org/

修改完成再输入命令查看配置文件,会发现 metrics-registry 已经发生了修改。

  1. $ npm config ls
  2. > metrics-registry = "https://registry.npm.taobao.org/"

这样,我们就修改完成了,之后使用 npm 命令下载包,将会从淘宝镜像开始下载,稳定且速度快。

2. CNPM

cnpm 是一个维护私有 npm 的解决方案,淘宝就是使用了 cnpm 搭建了一个属于内网的 npm 镜像。

可以安装 cnpm ,然后使用 cnpm 命令来下载安装淘宝镜像上的 npm 包,而不必修改 npm 的 register。

cnpm 的命令基本和 npm 差不多,所有使用起来很方便。

2.1 安装 cnpm

建议全局安装

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

2.2 使用 cnpm

cnpm 命令和 npm 差不多,就像 npm 一样使用。

  1. $ cnpm install webpack

或者

  1. $ npx cnpm install webpack

3. 使用 nrm 管理 registry (推荐)

nrm 是 NPM registry manager(NPM注册管理器)的缩写,可以更简单、快捷的管理 registry。

nrm 本身并不是装包工具,nrm 是维护了几个常用的 npm 的 registry 地址,方便我们简单、快捷地切换。

3.1 安装 nrm

nrm 建议全局安装

  1. $ npm install nrm -g

3.2 展示 nrm 维护的所有 registry

安装完成后,输入查看命令

  1. $ nrm ls

如果直接运行 nrm 命令提示报错的话,可以尝试下面的命令,如果仍旧无法解决,可以查看报错信息来找到解决方案

  1. $ npx nrm ls

查看数据结果,可以看到 nrm 帮我们维护了 npm yarn cnpm taobao nj npmMirror edunpm 这个7个环境,前面的 * (星号) 表示当前正在使用的环境。

  1. >
  2. npm -------- https://registry.npmjs.org/
  3. yarn ------- https://registry.yarnpkg.com/
  4. cnpm ------- http://r.cnpmjs.org/
  5. * taobao ----- https://registry.npm.taobao.org/
  6. nj --------- https://registry.nodejitsu.com/
  7. npmMirror -- https://skimdb.npmjs.com/registry/
  8. edunpm ----- http://registry.enpmjs.org/

如果输入 npm config ls 命令查看 metrics-registry 就会得到相同的结果。

  1. $ npm config ls
  2. > metrics-registry = "https://registry.npm.taobao.org/"

3.3 改变 npm 的 registry

使用 use 命令,如下:

  1. $ npx nrm use [name]

[name] 必须得是,刚才 nrm 维护的 registry ,也就是 nrm ls 命令展示的那7个 registry 其中之一。

例如将 npm 的 registry 再改回官方地址:

  1. $ npx nrm use npm
  2. > Registry has been set to: https://registry.npmjs.org/

可以看到输入命令之后,会提示 “Registry 已经被注册为 ***” 的提示语。

然后查看 npm 的配置信息:

  1. $ npm config ls

并且查看 nrm 的 registry 列表,发现星号也移动到了 npm 这一行:

  1. $ npx nrm ls
  2. >
  3. * npm -------- https://registry.npmjs.org/
  4. yarn ------- https://registry.yarnpkg.com/
  5. cnpm ------- http://r.cnpmjs.org/
  6. taobao ----- https://registry.npm.taobao.org/
  7. nj --------- https://registry.nodejitsu.com/
  8. npmMirror -- https://skimdb.npmjs.com/registry/
  9. edunpm ----- http://registry.enpmjs.org/

同样,如果想使用 nrmregistry 改为淘宝镜像,如下:

  1. $ npx nrm use taobao
  2. > Registry has been set to: https://registry.npm.taobao.org/

参考: https://github.com/Pana/nrm

npm 配置 registry 以及使用 nrm的更多相关文章

  1. 设置npm的registry

    .原npm地址 npm config set registry http://registry.npmjs.org .设置国内镜像 a.通过config命令 npm config set regist ...

  2. 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、Git/SVN)

    一. 各类概念和指令介绍 1. NVM (1).  全称:Node Version Manager,是一款针对Nodejs的版本管理工具,由于Node的版本很多,很多时候我要需要依赖多个版本,并且要求 ...

  3. Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G

    code&monkey   Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ...

  4. npm配置镜像及nrm使用

    ​ 淘宝npm镜像 搜索地址:http://npm.taobao.org/ registry地址:http://registry.npm.taobao.org/ cnpmjs镜像 搜索地址:http: ...

  5. npm配置镜像、设置代理

    配置镜像 by config command npm config set registry http://registry.cnpmjs.orgnpm info underscore (如果上面配置 ...

  6. npm配置国内镜像资源+淘宝镜像

    将npm的注册表源设置为国内的镜像 1.国内用户,建议将npm的注册表源设置为国内的镜像,可以大幅提升安装速度 2.国内优秀npm镜像推荐及使用:http://riny.net/2014/cnpm/ ...

  7. NPM 源的管理器nrm

    作为一个 NPM 源管理器,nrm允许快速地在如下 NPM 源间切换: 列表项目 npm cnpm strongloop enropean australia nodejitsu taobao Ins ...

  8. 解决npm安装模块时 npm err! registry error parsing json

    最近还真是点背,从yeoman生成一个react项目或是github上克隆一个项目,在npm install的时候, 一直报npm err! registry error parsing json(就 ...

  9. 2、Vue实战-配置篇-npm配置

    引言: 如果刚开始使用 vue 并不了解 nodejs.npm 相关知识可以看我上一篇的实践,快速入门了解实战知识树. Vue实战-入门篇 上篇反思: 1.新的关注点:开发 vue 模板.如何使用本地 ...

随机推荐

  1. 初始HTML05

    HTML 表单控件属性 表单控件可设置以下标签属性 属性名 取值 type 设置控件类型 name 设置控件名称,最终与值一并发送给服务器 value 设置控件的值 placeholder 设置输入框 ...

  2. 短短 29 天,应对高峰 100W+ 访问,看浙大如何交出满分答卷

    疫情期间"停课不停教,停课不停学",线上开课第一天,浙江大学网上开课平台访问量即突破100 万次,访客数3万余人,最高峰达 1.1万人同时在线,发起课程直播2000余场,然而系统却 ...

  3. JVM:参数调优

    JVM:参数调优 本笔记是根据bilibili上 尚硅谷 的课程 Java大厂面试题第二季 而做的笔记 前言 查看 JVM 系统默认值:使用 jps 和 jinfo 进行查看 -Xms:初始堆空间 - ...

  4. 论文解读丨表格识别模型TableMaster

    摘要:在此解决方案中把表格识别分成了四个部分:表格结构序列识别.文字检测.文字识别.单元格和文字框对齐.其中表格结构序列识别用到的模型是基于Master修改的,文字检测模型用到的是PSENet,文字识 ...

  5. Linux下Zabbix5.0 LTS监控基础原理及安装部署(图文教程)

    Zabbix 是什么? zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置,能监视 ...

  6. 洛谷 P3195 [HNOI2008] 玩具装箱

    链接: P3195 题意: 给出 \(n\) 个物品及其权值 \(c\),连续的物品可以放进一个容器,如果将 \(i\sim j\) 的物品放进一个容器,产生的费用是 \(\left(j-i+\sum ...

  7. linux中dd命令

    转载:https://www.runoob.com/linux/linux-comm-dd.html Linux dd 命令用于读取.转换并输出数据. dd 可从标准输入或文件中读取数据,根据指定的格 ...

  8. 痞子衡嵌入式:借助Serial Plot软件测量i.MXRT系列FlexSPI驱动Flash页编程执行时间

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT系列FlexSPI驱动Flash页编程执行时间. 痞子衡之前写过一篇文章 <串行NOR Flash的页编程模式对于量产 ...

  9. 印象最深的一个bug——排查修复问题事件BEX引发的谷歌浏览器闪退崩溃异常

    前言 最近,我们部门负责项目运维的小王频频接到甲方的反馈,运行的项目使用谷歌浏览器登录后,每次点击处理2秒后,浏览器自动闪退崩溃.小王同学折腾了一个星期,还没找到问题的原因.甲方客户都把问题反馈给项目 ...

  10. typedef的用法 单向链表的查找、增加、删除、销毁。

    一:typedef的用法.    写一个数据结构(计算机存储数据的一种方式,是抽象的,可以人为组织,提高算法效率),我们需要注意:接口友好,模块化,规范命名等方面,在接口友好方面,typedef是非常 ...