簡體   English   中英

npm 在安裝后/解鎖時掛起

[英]npm hangs on postinstall / unlock

我有一台 Linux 服務器,它使用 KVM 運行一些虛擬機。 主機是 Debian 派生的 kernel 2.6.32-32(-pve)。

在我運行npm install的大約 75% 的時間里,它在安裝模塊時掛起。 我在愚蠢的調試級別運行它,它總是掛在線上

npm info postinstall [module name] (較舊的 npm 版本)

或者

npm verb unlock done using [...] (較新的 npm 版本)

永遠。

它發生在主機上的每個項目和每個節點的虛擬化系統上以及我測試過的每個 npm 版本(很多,包括最新的(2.7.x atm))。

它也不是確定性的。 有時它可以工作,有時不能,而且大多數時候它掛在不同的模塊上。

在我的開發機器上(在同一個網絡中,運行 OS X 10.10)它工作正常。

我不支持任何類型的代理。

這里可能有什么問題?

編輯:目前我通過使用https://github.com/JamieMason/shrinkpack將我的所有依賴項檢查為壓縮文件來解決這個問題

我在幾個小時內遇到了同樣的問題,但無法弄清楚問題是什么。 我嘗試了幾次重新安裝所有東西,手動安裝單個模塊,從 x64 版本的 NodeJS 切換到 x86 版本等,但一無所獲。

最后,我改變了網絡,從 WiFi over ADSL2+ [~2mbps] 到 4G Hotspot [~20mbps],它在 30 秒內工作。 不知道為什么,因為它看起來不像是網絡速度問題,但它解決了問題。

希望這對其他人也有幫助!

我在基於 Ubuntu 的 Jenkins slave 上遇到了同樣的問題,通過升級npm解決了。

apt-get安裝的默認npm現在版本為1.3.10 ,這是非常舊的(由npm --version )。 至少有兩種方法可以升級它:

  1. 運行sudo npm install -g npm命令。 如果要安裝特定版本,可以在命令末尾運行 append 它: sudo npm install -g npm@2.1.3
  2. 或者您可以使用 這些說明添加 NodeSource 存儲庫並運行通常的sudo apt-get update

我在Windows上有同樣的問題。 我刪除了我的npm-cache文件夾並重新安裝了npm 之后一切都開始正常工作。 可以在以下位置找到npm-cache文件夾

<your-drive>\Users\<your-name>\AppData\Roaming\npm-cache

記得打開“查看隱藏文件,因為 AppData 文件夾默認是隱藏的

您可以使用以下命令重新安裝 npm,

npm i npm -g

我做了同樣的事情,將我的網絡從 WiFi 切換到 3G 並且它工作正常。

我遇到了同樣的問題,這是 Github 上的問題: https : //github.com/npm/npm/issues/7862

有一些有用的提示似乎對一些人有所幫助。

對我來說,做 $ npm install -g node-gyp(如這里建議的那樣: http : //gangmax.me/blog/2013/05/13/resolve-npm-update-node-gyp-hung-problem/ )解決了這個問題.

我有同樣的問題,只是運行

npm cache clean

它有效!

在 Windows 中也有同樣的問題。 解決方案是在安裝 node 和 npm 后重新啟動,然后以管理員身份運行命令提示符。

在 Windows 上,請確保您使用的是本機 CMD(不在 VSCODE 或任何 IDE 中)。 另外,嘗試增加節點的最大內存限制:

set NODE_OPTIONS=--max_old_space_size=8096 

就我而言,系統重啟完成了工作。 我運行npm install --verbose ,它建議對npm-cache的文件進行一些鎖定。 而且我認為系統在系統重新啟動后釋放了該文件(正在使用)。 我正在使用窗戶。

再次嘗試克隆項目並執行 npm i

"

我用 npm v6 遇到了這個,結果證明我只是不耐煩。 我只需要再等一會兒,它就會進入下一步。

npm cache clean --force 

為我工作:)

=> 這種方法對我有用 當安裝包中的 npm 塊用於 IONIC 安裝和 ReactNative 以及另一個包 npm。

您可以更改臨時: npm config set prefix C:\\Users[username]\\AppData\\Roaming\\npm\\node_modules2

  • 更改環境變量中的路徑 C:\\Users[username]\\AppData\\Roaming\\npm\\node_modules2

  • 運行你的命令來安裝你的包。

  • 打開文件資源管理器復制鏈接 C:\\Users[username]\\AppData\\Roaming\\npm\\node_modules

    ok 文件 yourpackage.CMD 創建了另一個文件夾在 node_modules 中創建了“node_modules2”並包含您的包文件夾。

  • 將您的包文件 CMD 復制到父文件夾“npm”

  • 將您的包文件夾復制到父文件夾“node_modules”

  • 現在運行 npm config set prefix C:\\Users[username]\\AppData\\Roaming\\npm

  • 更改環境變量中的路徑 C:\\Users[username]\\AppData\\Roaming\\npm

  • 現在包可以使用命令行正常工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM