本文記錄在使用npm安裝依賴包過程中踩過的坑。一般來說,npm安裝失敗時需要注意下面幾點:
- 是否能夠訪問安裝源:檢查代理和當前安裝源
- 當前的
node版本是否兼容已有模塊node_modules - 輸入的依賴包名稱是否正確
解決npm ERR! code ENOENT
解決方案1:npm cache clean --force
解決方案2:
npm ERR! enoent ENOENT: no such file or directory, open '/home/sida/repo/did-sidetree.js/node_modules/write-pkg/node_modules/pify/package.json.909409536'
用npm install 單獨安裝報錯中出現的包名:例如出現上邊的錯,則npm install pify --registry=https://registry.npm.taobao.org
npm ERR! code ECONNRESET
在使用npm安裝node的模塊的時候,經常會出現下面的一些錯誤:
- npm ERR! network tunneling socket could not be established, cause=connect ECONNREFUSED
- npm ERR! code ECONNRESET
- npm ERR! code ETIMEOUT
- npm ERR! code ENOFFOUND
這些錯誤的原因很有可能是npm使用默認的源下載安裝包,而默認的安裝源是國外網站,國內訪問不了無法獲取依賴包信息。
這時只需要更換為國內的安裝源即可,可在命令行更換為國內淘寶的源:
npm安裝源設置
上面介紹了通過命令行設置安裝源地址的辦法,另外還可以設置代理,以及編輯配置文件等方法。
另外還可以直接編輯npm安裝配置文件:.npmrc,在文件末尾添加兩行:
這個文件一般在用戶目錄或者安裝目錄下。
SSL Error: CERT_UNTRUSTED
這個是因為HTTPS的設置問題,可以有兩種辦法解決:
- 關掉SSL檢測
- 使用HTTP連接的安裝源
命令如下:
npm WARN unmet dependency
這個錯誤的原因很有可能是按照依賴包的過程重網絡超時等導致,可以通過清空node_module修復:
有時候,因為node版本過低也會導致該問題,可以使用下面命令更新node:
npm ERR! code EINTEGRITY
npm install時報錯:
npm ERR! code EINTEGRITY
npm ERR! sha512- sha512-rkIa1OSVWTt4g9leLSK/PsqOj3HZbDKHbZj
這個問題有可能是npm版本過低導致,需要更新npm版本:
npm ERR! code EPERM
安裝時出現:
npm ERR! code EPERM
npm ERR! errno -4048
這個錯誤出現的原因很多,其中一個是因為npm安裝緩存的問題,可以嘗試執行下面命令清空緩存。
