nrm(npm registry manager )是npm的镜像源管理工具,平时开发的时候需要在公司内网仓库和taobao仓库做切换,这次使用的时候出现一个报错,记录一下解决的思路
全局安装
nrm i -g nrm
查看nrm源
nrm ls
报错
结果控制台报以下错误
Error: Cannot find module 'C:\Users\用户\AppData\Roaming\npm\node_modules\nrm\node_modules\npm\index.js'
排错
到对应的目录下确实没有index.js这个文件,查看该目录下的package.json的main属性,如图:
由此我们可以得到结论:这个npm依赖有问题。我们接着往下看其他的错误提示
C:\Users\用户\AppData\Roaming\npm\node_modules\nrm\cli.js:6:13
可以定位到cli.js这个文件的第六行代码,如下:
const npm = require('npm');
同样作证了npm依赖可能存在问题,查看package.json版本,如图:
我们去github上查看下npm的最新版本
意思是官方在v8版本移除了对require('npm')的支持
解决
我们可以尝试一下降低npm的版本,修改C:\Users\用户\AppData\Roaming\npm\node_modules\nrm目录下package.json文件(我降到了6.14.13这个版本区间)
在该目录下运行npm i,完成后执行nrm ls,成功!