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

2024年 1月 23日 167.3k 0

本文将分享切换 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

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论