在使用國內云服務器時,經常會遇到 npm install
命令執行卡住的情況。本文將分享一個典型案例以及常見的解決方案。
問題描述
在執行以下命令時:
mkdir test-npm
cd test-npm
npm init -y
npm install lodash --verbose
安裝過程會卡在這個狀態:
(??????????????????) ? idealTree:test-npm: sill idealTree buildDeps
常見原因及解決方案
- 網絡連接問題
這是最常見的原因之一。可以通過以下步驟診斷和解決:
# 測試網絡連接
ping registry.npmjs.org# 切換為國內鏡像源
npm config set registry https://mirrors.huaweicloud.com/repository/npm/
- npm 緩存問題
緩存可能會導致安裝卡住,可以嘗試清除緩存:
npm cache clean --force
- package-lock.json 沖突
有時候 package-lock.json 文件可能會導致沖突:
# 刪除相關文件后重新安裝
rm -rf package-lock.json node_modules
npm install
- Node.js 版本兼容性問題
檢查 Node.js 版本是否合適:
node -v
- 磁盤空間不足
確保有足夠的磁盤空間:
df -h
解決方案:切換國內鏡像源
在我的案例中,問題的根源是網絡連接問題。通過切換到國內鏡像源成功解決了這個問題。以下是推薦的國內鏡像源:
華為云鏡像源(推薦)
npm config set registry https://mirrors.huaweicloud.com/repository/npm/
阿里云鏡像源
需要特別注意,阿里云的舊版本源已經停止服務,請使用新版本源:
# ?? 舊版本源(已于 2022.06.30 停止服務)
# npm config set registry https://registry.npm.taobao.org/# ? 新版本源
npm config set registry https://registry.npmmirror.com
總結
當遇到 npm install 卡住的情況時,建議首先嘗試切換到國內鏡像源,特別是華為云鏡像源,這通常能解決大部分問題。如果問題仍然存在,可以按照上述步驟逐一排查其他可能的原因。
記住:使用國內鏡像源時,一定要確保使用的是最新的地址,特別是阿里云鏡像源,避免使用已經停止服務的舊地址。