Npm 淘宝镜像到期了,尽快切换

本文将分享切换 npm 淘宝源的问题以及一些 npm 使用方式和技巧。

众所周知,npm 官方镜像(registry.npmjs.org)在国内访问很慢,很多同学都会选择切换到国内的一些 npm 镜像,如淘宝镜像、腾讯云镜像。

1 月 22 日,淘宝原镜像域名(registry.npm.taobao.org)的 HTTPS 证书正式到期:

这就导致旧的 npm 淘宝镜像在使用时出错了:

npm ERR! request to registry.npm.taobao.org failed, reason: certificate has expired

其实,早在 2021 年,淘宝就发文称,npm 淘宝镜像已经从 registry.npm.taobao.org 切换到了 registry.npmmirror.com。旧域名也将于 2022 年 5 月 31 日停止服务(不过,直到今天 HTTPS 证书到期才真正不能用了)。

所以,遇到上述问题,或者还在使用旧的 npm 淘宝镜像,直接将 npm 源切换到新的源即可:

// 1. 清空缓存
npm cache clean --force
// 2. 切换新源
npm config set registry https://registry.npmmirror.com

我们可以使用 nrm 来管理 npm 源,特别是当需要在不同的网络环境之间切换时,它可以提供更好的包管理体验。

nrm(npm registry manager)是一个用于管理和切换 npm 源的命令行工具。它允许您在不同的 npm 源之间进行切换,以加快包的下载速度,或者解决特定源无法访问的问题。nrm 提供了一组命令,可以列出可用的 npm 源、添加新源、测试源的响应速度,并切换当前使用的源。

首先,通过以下命令来安装 nrm:

npm install -g nrm

以下是一些常见的 nrm 命令:

列出可用的源:当前配置的所有可用 npm 源以及它们的名称和 URL。

nrm ls

例如:

切换源:将当前的 npm 源切换为指定的源。可以使用源的名称或 URL 作为  参数。

nrm use 

添加源:添加一个新的 npm 源并指定其名称和 URL。

nrm add  

删除源:删除指定的 npm 源,需要提供源的名称或 URL 作为  参数。

nrm del 

测试源的速度:测试指定源的响应速度,并显示测试结果。

nrm test 

显示当前使用的源:当前正在使用的 npm 源的名称和 URL。

nrm current

关于 npm 源就介绍到这里了。下面再来分享一些 npm 的使用技巧。

1、npm 基本概念

npm 全称为 Node Package Manager,是一个基于 Node.js 的包管理器,也是 Node.js 社区最流行、支持的第三方模块最多的包管理器。它的初衷就是让开发人员更容易分享和重用代码。npm 提供了命令行工具,其主要功能是管理Node.js包,包括安装、更新、删除、查看、搜索、发布等。

npm 最初只是Node.js 的包管理器,但随着前端技术的不断发展,它的定位变成了广义的包管理器,可以实现JavaScript、React、Vue、Gulp、移动开发等包管理,是目前最大、生态最为健全的包管理器。

npm 能解决 Node.js 在模块管理上的很多问题,其常见的应用场景如下:

  • 从npm镜像服务器下载第三方模块;
  • 从npm镜像服务器下载并安装命令行程序到本地;
  • 自己发布模块到npm镜像服务器供他人使用。

npm 不需要单独安装,在安装 Node.js 时,就会连带着一起安装 npm 了。但是安装的 npm 不一定是最新的版本,可以使用以下命令来查看本地 npm 的版本:

npm -v

这里的 -v 是 –version 的缩写,表示版本。如果想升级 npm 版本,可以使用以下命令:

npm install npm@latest -g

这里@latest表示最新的版本,-g 是 –global 的缩写,表示全局安装。

除此之外,还可以使用help命令来查看npm帮助:

npm 命令 --help

比如查看 install 的参数形式:

npm install --help

其中–help可以简写为-h,上面命令的执行结果如下,可以看到install命令的很多形式:

常见的npm命令:

命令

作用

npm -v

查看 npm 版本。

npm init

初始化后会出现一个 package.json 配置文件。可以在后面加上 -y ,快速跳过问答式界面。

npm install

根据项目中的 package.json 文件自动下载项目所需的全部依赖。

npm install 包名 –save-dev(npm install 包名 -D)

安装的包只用于开发环境,不用于生产环境,会出现在 package.json 文件中的 devDependencies 属性中。

npm install 包名 –save(npm install 包名 -S)

安装的包需要发布到生产环境的,会出现在 package.json 文件中的 dependencies 属性中。

npm list

查看当前目录下已安装的 node 包。

npm list -g

查看全局已经安装过的 node 包。

npm –help

查看 npm 帮助命令。

npm update 包名

更新指定包。

npm uninstall 包名

卸载指定包。

npm config list

查看配置信息。

npm 指定命令 –help

查看指定命令的帮助。

npm info 指定包名

查看远程 npm 上指定包的所有版本信息。

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

修改包下载源,这里修改为了淘宝镜像。

npm root

查看当前包的安装路径。

npm root -g

查看全局的包的安装路径。

npm ls 包名

查看本地安装的指定包及版本信息,没有显示 empty。

npm ls 包名 -g

查看全局安装的指定包及版本信息,没有显示 empty。

说完这些概念,下面就来看看 npm 在使用时有哪些实用的技巧。

2、初始化 package

凡是使用npm管理的项目,都需要初始化一个package.json文件。

可以使用以下命令来初始化一个包:

npm init

当执行这个命令时,它会通过问答的形式来一步步进行设置。如果不需要修改默认的配置,直接一路回车即可。如果想跳过向导,快速生成一个package.json 文件,可以执行以下命令:

npm init --yes

其中,–yes可以简写为-y。这时生成的package.json文件的配置项就是 npm 的默认配置。当然这个默认配置也是可以更改的,可以通过类似下面这样的形式来修改 npm 的默认配置:

npm config set init.author.name YOUR_NAME  
npm config set init.author.email YOUR_EMAIL

当执行以上命令之后,之后再执行 npm init 命令时,package.json 的作者姓名和邮箱都会初始化为我们设定的值。

3、快速了解 package

当要使用一个包时,如果想要了解它是如何使用的,可以使用以下命令来打开这个包的主页,它会自动启动浏览器并打开这个页面,这里以React为例:

npm home react

如果想要查看这个包现存的issue,或者公开的roadmap,可以执行以下命令:

npm bugs react

如果想要查看这个包的代码地址,可以执行以下命令:

npm repo react

如果想要查看这个包的详细信息,可以执行以下命令:

npm info react

执行结果如下:

这里返回的是一个JavaScript对象,里面包含react模块的详细信息,可以通过info命令来获取这个对象的成员信息:

npm info react description

执行结果如下:

4、安装依赖

可以使用npm install命令来安装需要的包,如果想把这个包自动添加到package.json中,可以执行以下命令,这里以安装React为例:

npm install react --save

如果想要安装不同版本的包,可以这样:

// 安装最新版本
npm install react@latest
// 安装指定版本
npm install react@16.8.0
// 安装指定区间版本
npm install react@">=16.8.0

上一篇 C++函数重载:解密性质、使用方法、特点与语法
下一篇 探秘C++虚函数:多态的奇妙世界