解决:nrm throw new ERR_INVALID_ARG_TYPE(name, ‘string‘, value); 问题

1、问题描述:

在 node 中安装好了 ‘nrm’ 却发现在执行命令后,
抛错:‘nrm throw new ERR_INVALID_ARG_TYPE(name, ‘string’, value);’,
该文章目的就是要找到该错误的原因以及解决该错误;

2、问题展示:

首先,在 cmd 命令行中运行命令 ‘nrm ls’,其会抛错;
即使是查看是否存在 vrm 的命令:‘nrm -V’ (注意:是大写的 ‘V’),也是抛出下述错误
‘nrm throw new ERR_INVALID_ARG_TYPE(name, ‘string’, value);’;

在这里插入图片描述

3、问题分析:

经过一系列的查询和操作,终于找到了问题所在,可能是因为版本不合适的原因;

4、解决的问题方法:

其一、查看 ‘npm’ 的配置:输入命令 ‘npm config ls’; 结果如下:若在 ‘user-agent’ 中显示的也是 ‘win32 x64’,那么我们的问题可能是相同的;
在这里插入图片描述

其二、找到安装 ‘nrm\cli.js’ 的文件:
在抛错的信息中找到:‘at Object.()’ 中的地址,我的是在:
‘C:\Users\dell\AppData\Roaming\npm\node_modules\nrm\cli.js’;
在这里插入图片描述
其三、打开该 ‘cli.js’ 文件
(建议用能打开并修改的能访问 ‘.js’ 文件的工具打开),我用的是 VSCode;
打开发现该代码块:

const NRMRC = path.join(process.env.HOME, '.nrmrc');

修改为:

const NRMRC = path.join(process.env.USERPROFILE, '.nrmrc');

该操作就完成了;

下述是我用 浏览器 和 VSCode 工具分别打开和修改 ‘cli.js’ 后的结果展示;

在这里插入图片描述
在这里插入图片描述
其四、分别在 ‘Windows PowerShell’ 和 ‘cmd’ 中进行测试;
测试命令为:‘nrm ls’;
若返回的结果是如下结果就说明其解决了问题;
在这里插入图片描述
在这里插入图片描述
其五、在 cmd 中查看 nrm 版本也是没有问题的;
输入命令:‘nrm -V’(注意是大写的);
在这里插入图片描述

5、小结:

哪里有不对或不合适的地方,还请大佬们多多指点和交流!

猜你喜欢

转载自blog.csdn.net/weixin_43405300/article/details/119777589