nrm是什么
nrm
(NPM Registry Manager)是一个用于管理 Node.js 包管理器(如 npm
和 Yarn
)的注册表工具。它可以帮助用户快速切换不同的 npm 源,以便于提高包安装的速度和效率,特别是在中国大陆地区,使用默认的 npm
源往往速度较慢。
nrm的作用
在使用 npm
的过程中,可能插件安装速度比较慢,我们可能会使用淘宝源对插件进行下载安装。或者在公司内部,有一些私有的插件,需要使用公司的源才可以下载。这种情况,我们就需要设置不同的源来进行下载。每次手动设置相对比较麻烦。而 nrm
可以很好的解决这个问题。
nrm主要功能
- 切换 npm 源:可以快速在多个 npm 源之间切换。
- 添加和删除源:可以自定义添加新的源或删除不需要的源。
- 查看当前源:可以方便地查看当前正在使用的 npm 源。
- 列出可用源:可以查看所有可用的 npm 源列表。
安装 nrm
# 全局安装 nrm
$ npm install nrm -g
安装完成后,输入命令 nrm ls
,可以看到默认已经有了 6 个源(带 * 号的为当前使用的源)
* npm ---- https://registry.npmjs.org/
cnpm --- http://r.cnpmjs.org/
taobao - https://registry.npm.taobao.org/
nj ----- https://registry.nodejitsu.com/
npmMirror https://skimdb.npmjs.com/registry/
edunpm - http://registry.enpmjs.org/
输入 nrm use taobao
,即切换 registry 到 taobao
,即可使用淘宝的源进行插件的安装下载了。
nrm常用命令
命令 | 描述 |
---|---|
npm install -g nrm | 全局安装nrm |
nrm current | 查看当前使用的 npm 源 |
nrm ls | 列出所有可用的 npm 源 |
nrm use <name> | 切换到其他 npm 源 |
nrm add <name> <url> | 切添加自定义源 |
nrm del <name> | 删除已添加的源 |
nrm set <name> <new-url> | 更新已添加的源 |
nrm test | 测试所有源的速度 |
nrm test <name> | 测试指定源的速度 |
nrm示例解析
-
npm install -g nrm
:全局安装nrm, 注意:如果使用 nvm 那么会安装在当前node版本号文件目录中 -
nrm current
:查看当前使用的 npm 源 -
nrm ls
:查看所有配置好的源以及对应名称
-
nrm use <name>
:切换源,即可使用name
对应名称的源 -
nrm add <name> <url>
:添加源,name
是名称,可以自行命名,后面是源的url
地址。例如,添加一个自定义源nrm add myregistry https://my.custom.registry/
-
nrm del <name>
:删除源,根据名称name
可以删除对应的源 -
nrm set <name> <new-url>
:如果需要更新某个源的 URL,可以使用set
来更新 -
nrm test <name>
:测试源的速度,不加对应的name
名称,测试所有源的速度,添加对应的名称,比如name
,就是测试name
对应的源的速度
-
更多命令在命令行输入 nrm 即可查看
nrm指定了npm源后,只允许安装源内的包吗?
不是的。
nrm
允许你方便地切换和管理 npm 源,但它并不会限制你只能安装指定源内的包。换句话说,通过 nrm
指定了源后,你的 npm 安装命令会从该源中拉取包信息,但如果在该源中找不到指定的包,npm 仍然可能会尝试从默认源(如 npm 官方源)中查找包。
为了确保只从指定的源中安装包,你需要将 npm
配置锁定到该源。可以使用以下步骤来实现:
-
通过 nrm 切换源:
nrm use <your-registry-name>
-
验证当前源:
npm config get registry
-
设置严格的 registry 配置:
可以通过编辑.npmrc
文件来强制 npm 只从指定的源中安装包。例如,在你的项目根目录下创建或编辑.npmrc
文件,添加以下内容:registry=<your-registry-url> strict-ssl=true always-auth=true
-
锁定范围(可选):
如果你只希望对某个范围内的包使用特定的 registry,可以在.npmrc
中进行如下配置:@your-scope:registry=<your-registry-url>
通过上述步骤,你可以确保 npm 只从你指定的源中安装包。请注意,strict-ssl
和 always-auth
选项是为了增加安全性,但并不是必需的。