npm install 安裝出錯時嘗試過的方法

碼飛_CC發表於2018-08-09

  專案拷到本地,然後cd進入專案目錄,npm install安裝,報錯了(①卡住不動unexpected end of filecb() never called等),可以嘗試以下方法:

  1. 首先確定自己使用的包的下載源是國內的(可以通過npm config list檢視自己包的下載源,如果是預設官方的話,建議改成國內的,方法npm config set registry https://registry.npm.taobao.org),不存在因為網路導致依賴包下載緩慢的安裝失敗問題,如果遇到安裝一半卡住不動的小夥伴可以嘗試一下這種方法。
  2. 然後,使用npm cache clean --force清除快取,並將安裝失敗的專案中的node_modules資料夾刪除,重新npm install
  3. 再次,可能由於node版本npm版本太老導致,那就升級版本。檢視node和npm版本的命令分別為node -vnpm -v。一點要提到的是,如果更新node版本的話,那麼連帶npm版本也會一同更新了,所以如果你只是想更新npm版本,那麼只需執行npm install npm -g就可以單獨更新npm版本,而不需要更新node版本,這裡注意npm要全域性安裝。如果要更新node版本的話,發現網上的很多方法有問題,linux平臺的話可以嘗試一下這種更新方式(首先清除cache,npm cache clean --force,然後安裝n模組,該模組專門用來管理nodejs的版本,命令為npm install -g n, 然後直接輸入n stable更新到最新版本,若要更新到指定版本的話,那麼就n 對應版本號,例如n 8.11.3即更新到8.11.3的版本),但是windows平臺不支援n,網上說的換成nvm的方式試過了也沒用。然後本人採用的更新方式如下(覆蓋安裝):①在官網(https://nodejs.org/zh-cn/)上下載對應要更新版本的安裝包;②使用命令列where node檢視原來版本的node安裝地址,然後再安裝新版本時,將node安裝到老版本所在的目錄下即可。然後再嘗試以上的解決辦法。本來以為重新安裝了node會導致之前安裝的全域性包這些丟失,結果覆蓋安裝後發現原來安裝的全域性包還都在,小驚喜~不用再重新下載那些包了。
  4. 網上也有提到一種方法:使用npm cache clean --force清除快取,然後將安裝失敗的專案中的node_modules資料夾以及package-lock.json檔案刪除(package-lock.json是在npm install安裝時生成的一份檔案,用以記錄當前狀態下實際安裝的各個npm package的具體來源和版本號,如果沒有這個檔案的話,那麼npm install將下載大版本下的最新的包,具體可參考:https://www.cnblogs.com/cangqinglang/p/8336754.html),然後再npm install

    以上這些方法應該能解決大部分安裝失敗的問題吧!若有其他安裝出錯的問題以及有對應的解決方法,歡迎留言~

相關文章