引言:
目前遇到了这样的问题: 因为个人和公司的npm仓库环境不一样,导致使用时需要频繁的切换npm指向。
所以,为了提高工作效率,就采用了nrm的方式来管理多个npm仓库。
老规矩,先举一个🌰。
For,example:
当前有两个仓库指向,分别是:
公司私有仓库:http://公司仓库IP/repository/npm-public/
淘宝镜像仓库:https://registry.npmmirror.com/
因为不同仓库的依赖不同,所以需要在不同场景使用不同的仓库指向。
针对这个问题:
传统操作:
一、通过命令直接切换Npm指向
// 第一步, 先查询当前的仓库指向
npm config get registry
// 第二步, 切换需要的仓库指向
// 如
npm config set registry http://公司仓库IP/repository/npm-public/
// 或者
https://registry.npmmirror.com/
二、在具体项目内指定依赖安装所依赖的仓库
// 进入项目的依赖安装目录级
// 如
npm install --registry=http://公司仓库IP/repository/npm-public/
// 或者
npm install --registry=https://registry.npmmirror.com/
以上两种方式存在两个问题:
1、你每次都 需要复制仓库地址 并设置一下仓库指向
2、当你的npm仓库个数过多,你需要去记录所有npm仓库
三、通过.npmrc 文件进行管理
// #开头表示注释, 具体根据需要把当前项目使用的npm仓库放开,把不需要的仓库#注释
#registry=https://registry.npmmirror.com/
registry=http://公司仓库IP/repository/npm-public/
这种方式较之上面两种要好,但是需要每个项目设置一个.npmrc管理仓库指向
通过nrm管理:
安装nrm
npm install -g nrm // 全局安装nrm
添加一个仓库至nrm
// 如添加一个名为company[公司]的npm仓库
nrm add company http://公司仓库IP/repository/npm-public/
从nrm中删除一个仓库
// 删除一个名为test-del的npm仓库
nrm add company test-del
修改一个仓库的名称
// 如 仓库test名称 修改为 test1
nrm rename test test1
查询当前的所有npm仓库
// 查看仓库列表
nrm ls
// 命令反馈
npm ---------- https://registry.npmjs.org/
yarn --------- https://registry.yarnpkg.com/
tencent ------ https://mirrors.cloud.tencent.com/npm/
cnpm --------- https://r.cnpmjs.org/
taobao ------- https://registry.npmmirror.com/
npmMirror ---- https://skimdb.npmjs.com/registry/
company ------ http://公司仓库IP/repository/npm-public/
official ----- https://registry.npmjs.org/
切换当前仓库指向
// 切换当前使用仓库为taobao
nrm use taobao
// 命令反馈
npm ---------- https://registry.npmjs.org/
yarn --------- https://registry.yarnpkg.com/
tencent ------ https://mirrors.cloud.tencent.com/npm/
cnpm --------- https://r.cnpmjs.org/
* taobao ------- https://registry.npmmirror.com/
npmMirror ---- https://skimdb.npmjs.com/registry/
company ------ http://公司仓库IP/repository/npm-public/
official ----- https://registry.npmjs.org/
测试一个仓库的响应速度
nrm test company // 测试命令 npm test <registryName>
npm ------ 688ms // 被测试仓库的响应速度输出为688ms
测试所有仓库源的响应速度
nrm test // 测试命令 默认查询全部
// 测试反馈 Fetch Error 表示连接失败
npm ------ Fetch Error
yarn ----- 799ms
tencent -- 79ms
cnpm ----- 2909ms
* taobao --- 282ms
npmMirror - 1363ms
company -- 688ms
official - Fetch Error
其他的一些命令,可以通过nrm -h来挨个查看
Commands:
ls List all the registries
current [options] Show current registry name or URL
use <registry> Change registry to registry
add <registry> <url> [home] Add one custom registry
login [options] <registryName> [value] Set authorize information for a custom registry with a base64 encoded string or username and pasword
set-hosted-repo <registry> <value> Set hosted npm repository for a custom registry to publish packages
set-scope <scopeName> <value> Associating a scope with a registry
del-scope <scopeName> Remove a scope
set [options] <registryName> Set custom registry attribute
rename <registryName> <newName> Set custom registry name
del <registry> Delete one custom registry
home <registry> [browser] Open the homepage of registry with optional browser
publish [options] [<tarball>|<folder>] Publish package to current registry if current registry is a custom registry.
if you're not using custom registry, this command will run npm publish directly
test [registry] Show response time for specific or all registries
help Print this help
if you want to clear the NRM configuration when uninstall you can execute "npm uninstall nrm -g -C or npm uninstall nrm -g --clean"
以上,
*就是本次的全部内容,如果能够帮助到你, 麻烦给个小赞支持一下~~~~~*