該錯誤提示“uid must be an unsigned int”,如下圖所示:
錯誤
google一下錯誤,npm問題區已經有人提了該問題:https://github.com/npm/npm/issues/13918 。
有人給出的解決辦法是升級node版本到最新,另外npm的版本如果是3.10.8的話可以降級到3.10.7或3.10.6試試。果斷試之,使用sudo npm install -g npm@3.10.6 降級,結果失敗,還是同樣錯誤!!!
繼續查看發現可能是npm權限的問題。使用“npm config get prefix”查看下npm默認的安裝路徑,大部分情況下都應該是“/usr/local”
查看默認安裝路徑
然后使用“ls -la /usr/local/lib/node_modules”查看當前目錄下的所有文件和文件夾,發現用戶組竟然是“nobody”:
用戶組竟然是nobody
使用“whoami”命令查看一下自己的用戶組卻是holyhouhou(不用查看也應該知道,嘿嘿),使用命令“sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}”把文件夾用戶組修改為當前用戶并給權限:
修改用戶組
修改后發現變過來了:
用戶組修改成功
然后再試著安裝,發現成功了,不再報錯?。?!
還不明白的可以去看npm文檔:https://docs.npmjs.com/getting-started/fixing-npm-permissions#option-1-change-the-permission-to-npms-default-directory