nrm throw new ERR_INVALID_ARG_TY
正确前言
坑,非常坑。幸好自己从头跑了一遍。
-
正确报错分析,导致原因这次不是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
4.进入了安装目录,emm聪明的都想到了。嘘!
5.打开packjson
6.没错就是这个,直接更新到最新版本了,直接把我带沟里了
image.png
7.如果用了我的错误方法,退到了旧版本也不要急,不影响的。
8.改为6.9.0
,对现有外部项目和node,npm等不会有丝毫影响
9.回到目录,运行cmd
image.png
10.yarn
或者npm i
更新包
11.nrm ls
成功,附带node版本
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'
}
错误解决方案
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
。这个是安装包
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。或者其他
8.切换版本nvm use 14.15.5
9.这时候,nrm ls
命令,发现可以正常使用。
Ps
- 某些原因要是用高版本node,迂回战术解决一下nrm。