某天手賤誤改了npm 全局安裝路徑,而且關鍵是路徑設錯了沒有這個路徑。
首先來了解npm的本地安裝路徑和全局安裝路徑。
npm的包安裝分為本地安裝(local)、全局安裝(global)兩種,從敲的命令行來看,差別只是有沒有-g而已,比如:
npm install grunt # 本地安裝 npm install -g grunt-cli # 全局安裝下面分別解釋。
1. npm install xxx -g 時, 模塊將被下載安裝到【全局目錄】中。【全局目錄】通過 npm config set prefix "目錄路徑" 來設置。通過 npm config get prefix 來獲取當前設置的目錄。
2. npm install xxx ,則是將模塊下載到當前命令行所在目錄。
例如:c:\123>npm install xxx將會安裝到c:\123\node_modules\xxx這種方式顯然是不好的,所以一般都會使用全局安裝方式統一安裝的一個目錄中去,這樣既方便管理、結構清晰還可以重復利用。
安裝node時,npm的默認全局安裝路徑為:"C:\Users\xxx\AppData\Roaming\npm" 這里的xxx就要看你是什么電腦品牌了,例如我是華碩這里xxx就是ASUS。你也可以看一下你電腦里面的這個路徑之下是不是有你之前全局安裝的一些包。
如果你和我一樣設置了錯誤的路徑 比如 直接設成了C:\Users\xxx\AppData\Roaming\npm 這個路徑中的xxx沒有改過來(恭喜你和我一樣大意,這是病),那么此時你使用任何跟npm相關的命令都會報錯:
很明顯示在Users之下創建xxx文件夾,是需要管理員權限的,如果你有管理員權限的話,就直接到Users文件夾下去手動建立xxx文件夾,一直把路徑下的文件夾全部建齊。之后再運行npm相關命令就不會報錯了,那么此時你就可以重新通過npm config set prefix 來設置全局安裝路徑,然后可以通過npm config get prefix 來驗證是不是設置成功。當然我在設置的回來的過程中遇到了問題,
最后直接把C:\Users\ASUS\AppData\Roaming\npm npm里面的所有內容刪了,重新安裝,就好了 雖然不可取,但是我不知道其他辦法啊!手賤惹得貨。
npm windows下的問題匯總參考鏈接:https://github.com/npm/npm/wiki/Troubleshooting#upgrading-on-windows
和一個npm基本設置:http://blog.csdn.net/gavinsun/article/details/51483421