由於淘寶鏡像已經過期,我這邊通過 npm config set registry修改淘寶鏡像,卻發現一旦創建項目還是從老的淘寶鏡像.
其實問題所在就是修改的鏡像源可能未被全局加載,尤其是當系統中存在多個 .npmrc 文件時,優先級較低的配置可能被覆蓋。
第一個方案:驗證並強制更新鏡像源
# 檢查當前鏡像源
npm config get registry
# 強制切換為新淘寶鏡像(npmmirror)
npm config set registry https://registry.npmmirror.com --global
# 清除緩存
npm cache clean --force
現在這個清除緩存已經禁止了,改成:npm cache verify
第二個方案:修正 Vue CLI 內部配置
找到 Vue CLI 的 registries.js 文件(路徑通常為 /usr/local/lib/node_modules/@vue/cli/lib/util/registries.js),修改內容為:
const registries = {
npm: 'https://registry.npmmirror.com',
yarn: 'https://registry.yarnpkg.com',
pnpm: 'https://registry.npmjs.org'
};
module.exports = registries;
保存後啓動終端。
打開文件的命令:cd /usr/local/lib/node_modules/@vue/cli/lib/util
編輯文件:vim registries.js (i是編輯,:wq是保存,:q!是不保存強制退出。別忘了esc鍵是編寫完成後按的)
如果發現命令沒有權限,增加權限:sudo chmod -R 0777 registries.js
這是兩個鏡像的地址
node鏡像:https://registry.npmjs.org
淘寶鏡像:npm config set registry https://registry.npmmirror.com
然後再檢查並覆蓋所有 .npmrc 文件
刪除用户目錄下的舊 .npmrc 文件:
rm ~/.npmrc
將新鏡像配置複製到系統 npm 目錄:
cp /usr/local/lib/node_modules/npm/.npmrc ~/.npmrc
使用 cnpm 或 yarn 替代
# 使用淘寶的 cnpm(自動處理鏡像問題)
npm install -g cnpm --registry=https://registry.npmmirror.com
cnpm install -g @vue/cli
# 或使用 yarn
yarn config set registry https://registry.npmmirror.com
yarn global add @vue/cli
驗證步驟
完成上述操作後,執行以下命令驗證:
npm config get registry # 應輸出 https://registry.npmmirror.com
vue create my-project # 觀察是否仍從舊鏡像拉取
若問題依舊,建議重新安裝 Node.js 和 Vue CLI