ubuntu使用npm出现 Missing required argument #1问题

最近在Ubuntu上使用npm install 命令安装的时候,有时候能成功有时候就是报错:

error Linux 4.15.0-169-generic
error argv "/usr/bin/node" "/usr/bin/npm" "install" "socket.io"
error node v8.10.0
error npm  v3.5.2
 error code EMISSINGARG
 error typeerror Error: Missing required argument #1
error typeerror     at andLogAndFinish (/usr/share/npm/lib/fetch-package-metadata.js:31:3)
 error typeerror     at fetchPackageMetadata (/usr/share/npm/lib/fetch-package-metadata.js:51:22)
 error typeerror     at resolveWithNewModule (/usr/share/npm/lib/install/deps.js:456:12)
error typeerror     at /usr/share/npm/lib/install/deps.js:190:5
 error typeerror     at /usr/share/npm/node_modules/slide/lib/async-map.js:52:35
 error typeerror     at Array.forEach (<anonymous>)
 error typeerror     at /usr/share/npm/node_modules/slide/lib/async-map.js:52:11 
 error typeerror     at Array.forEach (<anonymous>)
 error typeerror     at asyncMap (/usr/share/npm/node_modules/slide/lib/async-map.js:51:8)
error typeerror     at exports.loadRequestedDeps (/usr/share/npm/lib/install/deps.js:188:3)
error typeerror This is an error with npm itself. Please report this error at:
error typeerror     <http://github.com/npm/npm/issues>
 verbose exit [ 1, true ]

看错误描述是缺少参数,但是不应该有这个错,查了下大多数是建议换成国内的源cnpm,也就是下列执行下列命令:

sudo npm install -g cnpm --registry=https://registry.npm.taobao.org

但是还是不想换,最后找到了解决方式,最终尝试有效,这里记录如下:

  1. 将nodejs更新到最新版本
sudo npm install -g n

执行后效果如下:
在这里插入图片描述
可以看到,没啥反应。

  1. 接着执行:
sudo n latest

执行后效果如下:
在这里插入图片描述
这里也是没啥 变化,只是打印版本

  1. 升级npm到最后的版本:
sudo npm install -g npm

这步执行完效果如下:
在这里插入图片描述
就如同划线所示,会下载很多的包,如果出现红框的部分代表升级成功,

  1. 执行下列命令
hash -d npm
  1. 试一下npm安装
npm i

终于安装成功,如图
在这里插入图片描述
这次安装过程记录这里。。同时分享给大家