一、什么是nrm,为什么要用它
nrm是一个npm源管理工具,使用它可以快速切换npm源。我们都知道国内使用npm那是完全看脸色的,时好时坏。开始很多人都是使用淘宝的镜像cnpm,大家也知道cnpm拉下来的小众东西往往会有一些诡异的问题,那么又想切换回npm,并且cnpm也不一定就是最快的,现在有了nrm一切都是随你心意了。不但可以切换源,还可以检测具体源的速度如何。
二、全局安装nrm
npm install -g nrm
三、查看,切换源
nrm ls // 查看有哪些源 nrm use cnpm // 切换源
四、速度检测
nrm test npm nrm test cnpm
谁快谁慢一目了然,我的速度还可以哈,其实我自己一直用npm O(∩_∩)O哈哈~
五、其他命令
nrm -V :查看当前nvm版本。 nrm -h :显示所有命令。 nrm current :显示当前源名称。 nrm use <registry> :切换源。 nrm add <registry> <url> [home] :添加一个源。比如公司自己的私有源等。 nrm set-auth <registry> <value> [always] :设置自定义源的授权信息。 nrm set-email <registry> <value> :给自定义源设置路径。 nrm set-hosted-repo <registry> <value> :设置发布到自定义源的npm托管仓储。 nrm del <registry> :删除自定义源。 nrm home <registry> [browser] :浏览器中打开源首页。 nrm publish [options] [<tarball>|<folder>] :发布包到自定义源,如果没有使用自定义源,则直接发布到npm。 nrm test [registry] :测试源的访问速度。不加registry时,测试所有的。
六、可能会遇到的错误信息
internal/validators.js:117 throw new ERR_INVALID_ARG_TYPE(name, 'string', value); ^ [TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received undefined at validateString (internal/validators.js:117:11) at Object.join (path.js:375:7) at Object.<anonymous> (C:\Users\Administrator.PC-201904131657\AppData\Roaming\npm\node_modules\nrm\cli.js:17:20) at Module._compile (internal/modules/cjs/loader.js:1133:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10) at Module.load (internal/modules/cjs/loader.js:977:32) at Function.Module._load (internal/modules/cjs/loader.js:877:14) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12) at internal/main/run_main_module.js:18:47 ] { code: 'ERR_INVALID_ARG_TYPE' }
解决方案
找到报错上面的文件路径,比如我的位置:(C:\Users\Administrator.PC-201904131657\AppData\Roaming\npm\node_modules\nrm\cli.js:17:20)
将cli.js的第17行改为如下:
//const NRMRC = path.join(process.env.HOME, '.nrmrc'); 改为 const NRMRC = path.join(process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'], '.nrmrc')
评论前必须登录!
注册