執行npm update等命令出錯後如何分析問題根源

i042416發表於2018-10-30

我今天工作時,在當前前端專案工作目錄下執行命令npm update
結果遇到如下錯誤:registry error parsing json
npm ERR! Unexpected token < in JSON at position 0


執行npm update等命令出錯後如何分析問題根源

有些朋友遇到這個錯誤,就不知所措了。
本文介紹如何分析npm命令報出的這些錯誤。

首先根據錯誤訊息判斷出這是npm在解析一個json響應時出錯,因為這個期望的json響應第一個字元為<.

那麼這個json響應的請求是從哪裡來的呢?

我們需要檢視命令npm update的幫助文件。

執行命令列npm help npm開啟本地安裝完npm後的幫助文件:


執行npm update等命令出錯後如何分析問題根源

如果npm update後面不指定具體的包名,則會把package.json裡列出的所有依賴包更新到最新版本。

我們再看npm update錯誤輸出的最後一行,列出了一個日誌檔案,包含了錯誤明細。


執行npm update等命令出錯後如何分析問題根源

發現是請求依賴包sap/n的包描述json檔案時出的錯:


執行npm update等命令出錯後如何分析問題根源

執行npm update等命令出錯後如何分析問題根源

執行npm update等命令出錯後如何分析問題根源

在npm全域性安裝目錄下這個request.js檔案很有用:
"C:\Users\i042416\AppData\Roaming\npm\node_modules\npm\node_modules\npm-registry-client\lib\request.js"
它就是npm發起http請求拿sap/n依賴包的json檔案。

我們在json請求的回撥函式里加上一些除錯資訊的列印:


執行npm update等命令出錯後如何分析問題根源

現在就清楚多了,是這個依賴包sap/n的遠端有問題,直接聯絡這個依賴包的負責人去修復。


執行npm update等命令出錯後如何分析問題根源

作為臨時替代方案,也可以先把這個引起問題的依賴包從package.json中刪除,之後npm update正常工作.

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":

執行npm update等命令出錯後如何分析問題根源


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2218022/,如需轉載,請註明出處,否則將追究法律責任。

相關文章