nrm throw new ERR_INVALID_ARG_TYPE(name, 'string', value);

正确前言

坑,非常坑。幸好自己从头跑了一遍。

  • 正确报错分析,导致原因这次不是node高版本了。但是也是有点连带关系的。总不能说限制node升级吧,emmm。归根---啊,是npm版本过高,没想到吧


    image.png
  • 今后所有安装(nrm不更新)不管高版本node还是低版本node都得报错。坑

正确解决方案(windows环境)

1.这次不瞎吹了。入正题

2.作者npm版本6.9.0,能够正常运行,但不是全局的那种。

3.nrm安装目录,看每个人的安装目录在哪里,一般都是C:\Users\用户账号\AppData\Roaming\npm\node_modules\nrm

image.png

4.进入了安装目录,emm聪明的都想到了。嘘!

5.打开packjson

6.没错就是这个,直接更新到最新版本了,直接把我带沟里了


image.png

7.如果用了我的错误方法,退到了旧版本也不要急,不影响的。

8.改为6.9.0,对现有外部项目和node,npm等不会有丝毫影响

image.png

9.回到目录,运行cmd


image.png

10.yarn或者npm i更新包

11.nrm ls成功,附带node版本

image.png

Ps

  • 错误结论不删除,提醒作者要严谨,阿弥陀佛

错误前言

目标环境 windows node版本lts:14.15.5

  • 报错分析,node高版本下载nrm报错,旧版本10.16.3下载使用正常
internal/validators.js:121
    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:121:11)
  at Object.join (path.js:375:7)
  at Object.<anonymous> (C:\Users\Administrator\AppData\Roaming\npm\node_modules\nrm\cli.js:17:20)
  at Module._compile (internal/modules/cjs/loader.js:1200:30)
  at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)
  at Module.load (internal/modules/cjs/loader.js:1049:32)
  at Function.Module._load (internal/modules/cjs/loader.js:937:14)
  at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
  at internal/main/run_main_module.js:17:47
] {
  code: 'ERR_INVALID_ARG_TYPE'
}

-node版本下载
-nvm命令引用

错误解决方案

1.第一种,回退node版本,使用nrm

2.第二种,等待nrm更新。。估计没戏

3.使用nvm,使用低版本安装nrm,高版本使用。

nvm安装(windows环境)

1.首先说明nvm是什么,nvm全名称node.js version management。说白了就是跟npm一样的包管理器,不过它是管理Node版本的。

2.声明他不是使用npm安装的。npm安装运行后运行他会提示你不是一个package

3.https://github.com/coreybutler/nvm-windows/releases

4.选择最新版本的nvm-setup.zip。这个是安装包

image.png

5.zip解压是一个exe。打开安装...。如果你已经安装的有node,安装过程会提示你接管现有Node。yes就行,选择安装目录,和node目录,ok。

6.nvm命令

nvm off                     //禁用node.js版本管理(不卸载任何东西)
nvm on                      //启用node.js版本管理
nvm install <version>       //安装node.js的命名 version是版本号 例如:nvm install 8.12.0
nvm uninstall <version>     //卸载node.js是的命令,卸载指定版本的nodejs,当安装失败时卸载使用
nvm list                    //显示所有安装的node.js版本
nvm list available          //显示可以安装的所有node.js的版本
nvm use <version>           //切换到使用指定的nodejs版本

7.使用命令nvm list available,windows用户一般使用lts的。版本14.15.5。或者其他

image.png

8.切换版本nvm use 14.15.5

9.这时候,nrm ls命令,发现可以正常使用。

Ps

  • 某些原因要是用高版本node,迂回战术解决一下nrm。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容