NPM 常見錯誤


找不到兼容版本

你有一個過時的npm。請更新到最新穩定的npm

權限錯誤

npm ERR! code EPERM
npm ERR! code EACCES
  • 修復緩存的權限sudo chown -R $(whoami) "$HOME/.npm"
  • 再試一次sudo例如sudo npm install express -g(之后您可能需要修復緩存權限,如上所述)。
  • 重新安裝節點,因此它不需要sudo

使用0.8的Travis項目無法升級到npm 2

在你的.travis.yml替換中:

before_install
- npm install -g npm @ latest 

有了這個:

before_install
- ' [“$ {TRAVIS_NODE_VERSION}”!=“0.8”] || npm install -g npm@1.4.28 ' 
- npm install -g npm @ latest 

這個建議是基於這個特拉維斯問題,來自@simondean禮貌

Error: ENOENT, stat 'C:\Users\<user>\AppData\Roaming\npm' 在Windows 7上

這是joyent / node#8141的結果,並且是Windows的Node安裝程序的問題。解決方法是確保C:\Users\<user>\AppData\Roaming\npm存在並且可以使用普通用戶帳戶寫入。

沒有空間

npm ERR! Error: ENOSPC, write

您正在嘗試安裝在沒有空間或沒有寫入權限的驅動器上。

  • 釋放一些磁盤空間或
  • 將tmp文件夾設置在具有更多空間的位置:npm config set tmp /path/to/big/drive/tmp
  • 自己構建節點並將其安裝在可寫空間很大的地方。

沒有git

npm ERR! not found: git
ENOGIT

你需要安裝git

由於路徑長度問題,在Windows上運行Vagrant框失敗

@drmyersii經歷了一個聽起來很麻煩的試驗和錯誤,想出了一個涉及Windows長路徑和一些自定義Vagrant配置的工作解決方案:

這是我實現它的提交,但我會繼續發布代碼的主要代碼片段:

配置vm 提供者  virtualbox 做  | v | 
    v 自定義  [ sharedfolder 添加 ID --name WWW --hostpath // / + 文件目錄名__FILE__ + / WWW GSUB / \\           ]
結束
 
配置vm 提供  shell 內聯 mkdir / home / vagrant / www   
配置vm 提供  shell 內聯 mount -t vboxsf -o uid =`id -u vagrant`,gid =`getent group vagrant | cut -d:-f3`> www / home / vagrant / www run always     

在上面的代碼中,我將附加\\?\到當前目錄的絕對路徑。這實際上會強制Windows API允許增加MAX_PATH變量(通常上限為260)。詳細了解最大路徑這是在共享文件夾創建期間發生的,這是由VBoxManage有意處理而不是Vagrant的“synced_folder”方法。最后一點是不言自明的; 我們創建新的共享文件夾,然后確保每次訪問或觸摸機器時都會掛載它,因為Vagrant喜歡在每次加載時重新加載其掛載/共享文件夾。

npm僅使用git:ssh+git:GitHub repos的URL,破壞代理

@LaurentGoderre一些Git 技巧解決了這個問題

我通過運行以下兩個命令修復了我的幾個同事的這個問題:

git config --global url."https://github.com/".insteadOf git@github.com:
git config --global url."https://".insteadOf git://

我們注意到的一件事是.gitconfig使用的並不總是預期的,所以如果你在一台機器上修改了共享驅動器的主路徑,你需要確保.gitconfig你的共享驅動器和c:\users\[your user]\

SSL錯誤

npm ERR! Error: 7684:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:openssl\ssl\s23_clnt.c:787:

您正在嘗試將SSL與未加密的端點進行通信。通常,這是由於代理 配置 錯誤(另請參閱此幫助,如果過時,指南)。在這種情況下,您希望禁用strict-ssl- 您可能需要設置CA / CA文件以用於您的代理,但最好花些時間來解決這個問題,而不是禁用SSL保護。

npm ERR! Error: SSL Error: CERT_UNTRUSTED
npm ERR! Error: SSL Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE

如果您正在運行Node 0.6,則會發生此問題。請升級到0.8或以上的節點。看到這個職位的詳細信息

您也可以嘗試這些解決方法:npm config set ca ""npm config set strict-ssl false

npm ERR! Error: SSL Error: SELF_SIGNED_CERT_IN_CHAIN

npm不再支持自簽名證書

或者:

  • 升級您的npm版本 npm install npm -g --ca=""
  • 告訴你當前版本的npm使用已知的注冊商 npm config set ca=""

如果這不能解決問題,那么您可能擁有SSL攔截代理。(例如,https://github.com/npm/npm/issues/7439#issuecomment-76024878

SSL攔截代理

未解。請參閱https://github.com/npm/npm/issues/9282

找不到/服務器錯誤

npm http 404 https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.7.0.tgz
npm ERR! fetch failed https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.7.0.tgz
npm ERR! Error: 404 Not Found
npm http 500 https://registry.npmjs.org/phonegap
  • 這很可能是一個臨時的npm注冊表故障。檢查npm服務器狀態,稍后再試。
  • 如果錯誤仍然存​​在,則發布的包可能已損壞。聯系包所有者,讓他們發布新版本的包。

無效的JSON

Error: Invalid JSON
npm ERR! SyntaxError: Unexpected token <
npm ERR! registry error parsing json
  • 可能的臨時npm注冊表故障,或損壞的本地服務器緩存。運行npm cache clean和/或稍后再試。
  • 這可能是由對代表提供HTML響應的公司代理引起的package.json檢查npm的代理配置
  • 檢查您嘗試安裝的軟件包是否存在問題(例如無效package.json)。

輸出中有很多ENOENTENOTEMPTY錯誤

編寫npm是為了在安裝時有效地使用資源,其中一部分是它嘗試同時執行盡可能多的事情。有時這會導致競爭條件和其他同步問題。從npm 2.0.0開始,解決了大量這些問題。如果你看到ENOENT lstatENOENT chmodENOTEMPTY unlink,或在你的日志輸出類似的東西,嘗試更新NPM到最新版本。如果問題仍然存在,請查看npm / npm#6043並查看是否有人已經討論過您的問題。

cb() never called! 使用shrinkwrapped依賴項時

看一下#5920號問題我們正在努力修復這個,但這是一個相當微妙的競爭條件,它花了我們一點時間。您可以嘗試將npm-shrinkwrap.json文件移開,直到我們將其修復為止。這已在npm版本中修復npm@2.1.5,因此更新為npm@latest

npm login 錯誤

有時npm login失敗沒有明顯的原因。首先要登錄https://www.npmjs.com/login並檢查您的電子郵件地址是否npmjs.com與您提供的電子郵件地址相符npm login

如果那不是問題,或者您正在看到該消息"may not mix password_sha and pbkdf2",那么

  1. 登錄https://npmjs.com/
  2. 通過https://npmjs.com/password更改密碼- 您甚至可以將其“更改”為相同的密碼
  3. 清除與登錄相關的字段~/.npmrc- 例如,通過運行sed -ie '/registry.npmjs.org/d' ~/.npmrc
  4. npm login

它通常似乎工作。

有關此問題的歷史記錄,請參閱https://github.com/npm/npm/issues/6641#issuecomment-72984009

npm 掛在Windows上 addRemoteTarball

檢查是否在您的設置中設置了兩個臨時目錄.npmrc

> npm config ls -l

查找定義tmpconfig變量的行。如果您找到多個,請刪除除其中一個之外的所有內容。

有關此異常問題的詳細信息,請參閱https://github.com/npm/npm/issues/7590

其他

  • 只需運行npm cache clean並再次嘗試即可解決一些奇怪的問題
  • 如果您遇到問題npm install,請使用該-verbose選項獲取更多詳細信息。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM