[英]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
)。 至少有兩種方法可以升級它:
sudo npm install -g npm
命令。 如果要安裝特定版本,可以在命令末尾運行 append 它: sudo npm install -g npm@2.1.3
。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 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.