我今天工做時,在當前前端項目工做目錄下執行命令npm update
結果遇到以下錯誤:registry error parsing json
npm ERR! Unexpected token < in JSON at position 0前端
有些朋友遇到這個錯誤,就不知所措了。
本文介紹如何分析npm命令報出的這些錯誤。node
首先根據錯誤消息判斷出這是npm在解析一個json響應時出錯,由於這個指望的json響應第一個字符爲<.npm
那麼這個json響應的請求是從哪裏來的呢?json
咱們須要查看命令npm update的幫助文檔。函數
執行命令行npm help npm打開本地安裝完npm後的幫助文檔:spa
若是npm update後面不指定具體的包名,則會把package.json裏列出的全部依賴包更新到最新版本。命令行
咱們再看npm update錯誤輸出的最後一行,列出了一個日誌文件,包含了錯誤明細。調試
發現是請求依賴包sap/n的包描述json文件時出的錯:日誌
在npm全局安裝目錄下這個request.js文件頗有用:
"C:Usersi042416AppDataRoamingnpmnode_modulesnpmnode_modulesnpm-registry-clientlibrequest.js"
它就是npm發起http請求拿sap/n依賴包的json文件。blog
咱們在json請求的回調函數里加上一些調試信息的打印:
如今就清楚多了,是這個依賴包sap/n的遠端有問題,直接聯繫這個依賴包的負責人去修復。
做爲臨時替代方案,也能夠先把這個引發問題的依賴包從package.json中刪除,以後npm update正常工做.
要獲取更多Jerry的原創文章,請關注公衆號"汪子熙":