剖析并用三种方式解决 nrm : 无法加载文件 C:\Users\dell\AppData\Roaming\npm\cli.js,因为在此系统上禁止运行脚本问题

1、问题描述:

存在的问题就是:在 node 中运行 nrm 抛出问题为:
’nrm : 无法加载文件 C:\Users\dell\AppData\Roaming\npm\cli.js,因为在此系统上禁止运行脚本’;
经过搜索与朋友指点才解决了该问题;

2、问题展示:

打开 ‘Windows PowerShell(管理员)(A)’,并输入命令:’nrm ls’,显示结果如下:抛错:
‘nrm : 无法加载文件 C:\Users\dell\AppData\Roaming\npm\cli.js,因为在此系统上禁止运行脚本’;

在这里插入图片描述
在这里插入图片描述

3、问题分析:

其一、经查阅是权限的问题,执行命令 set-ExecutionPolicy RemoteSigned ,并根据输出显示输入Y,可能把问题解决;

其二、若 ‘其一操作’ 未成功的解决方法;

A、若未解决,那么首先需要查看:Get-ExecutionPolicy -List,通过改变执行策略的优先级来解决问题;

B、其次,我们要做的就是将 ‘Process’ 作用域的执行策略也修改为 ‘RemoteSigned’ 就可以了;
执行命令:Set-ExecutionPolicy RemoteSigned -Scope Process’,并根据输出显示输入Y,此时就应该解决了问题;

其三、若在其二后此时还没解决问题,而是抛出错误:

‘nrm throw new ERR_INVALID_ARG_TYPE(name, ‘string‘, value);’;

A、那么此时需要做的是查看:cmd 下的 ‘npm’ 的配置:输入命令 ‘npm config ls’;

B、若此时显示出来的信息存在如下为:

user-agent='npm/.../... Win32 x64'

C、那么只需要将相关位置上的 ‘cli.js’ 文件代码修改就应该能解决该问题;

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

修改为:

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

解决问题;

D、输入命令:’nrm ls’,来查看是否解决了该问题;

4、解决的问题方法:

其一、解决方案:

A、打开 ‘Windows PowerShell(管理员)(A)’,并输入命令set-ExecutionPolicy RemoteSigned,并根据输出显示输入Y,再输入命令: nrm ls ;

B、若输出结果如下所示,那么此时就已经解决了该问题
在这里插入图片描述

C、而输出的问题如下两种图片所示,那么请你继续阅读这篇文章的 ‘其二等内容’;

在这里插入图片描述

或者:

在这里插入图片描述

其二、基于 ‘其一’ 的基础,继续执行如下代码:

A、输入代码Get-ExecutionPolicy -List,后再输入代码:Set-ExecutionPolicy RemoteSigned -Scope Process,并根据输出显示输入Y

在这里插入图片描述

在这里插入图片描述

B、再输入命令nrm ls,若此时输出结果如下,那么此时就解决了问题;

在这里插入图片描述

C、而若此时输出结果如下,那么请你继续阅读这篇文章的 ‘其三等内容’;
抛错为:‘nrm throw new ERR_INVALID_ARG_TYPE(name, ‘string‘, value);’;

在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述

C、找到安装 ‘nrm\cli.js’ 的文件:

在这里插入图片描述

D、打开该 ‘cli.js’ 文件;
打开发现该代码块:

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

修改为:

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

此时应该就能解决该问题了;

E、输入命令nrm ls,若此时输出结果如下,就解决了问题;

在这里插入图片描述

在这里插入图片描述

5、小结:

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




注意:若 ‘其三’ 中内容不清楚请看文章:

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

’https://blog.csdn.net/weixin_43405300/article/details/119777589’

注意:若出现问题,找不到 C 盘中的 AppData 文件夹;

’解决找不到 C 盘中的 AppData 文件夹的问题’

地址为:

’https://blog.csdn.net/weixin_43405300/article/details/119779375’

Guess you like

Origin blog.csdn.net/weixin_43405300/article/details/119777430