YARN构建--解决cypress下载慢问题
背景
注意:
此方案僅適合已經自行搭建私有倉庫的用戶使用
如非必要,盡可能使用軟件開發(fā)云或其他服務提供的鏡像站,避免此類特殊處理(會導致倉庫維護成本增加)
場景描述
YARN構建中,如果使用了cypress包,會出現(xiàn)如下的下載過程
1. 從npm倉庫下載 cypress.tgz : npm http fetch GET 200https://mirrors.huaweicloud.com/repository/npm/cypress/-/cypress-3.1.4.tgz 146ms
2. 執(zhí)行cypress-3.1.4.tgz中的腳本,該腳本會拼接出cypress.zip的下載地址并下載,分析cypress.tgz腳本發(fā)現(xiàn),下載地址獲取過程如下:
(1) 獲取下載服務器地址:如果環(huán)境變量有值,則去環(huán)境變量中配置的地址,否則取默認地址https://download.cypress.io/
(2) 拼接cypress.zip文件路徑:腳本中會固定拼接成 desktop/3.1.4?platform=linux&arch=x64
(3) 最終得到cypress.zip下載地址為:https://download.cypress.io/desktop/3.1.4?platform=linux&arch=x64 ,開始下載依賴
3. 從國內下載https://download.cypress.io/desktop/3.1.4?platform=linux&arch=x64 時,速度比較慢,會導致構建卡頓甚至超時失敗
問題分析
從”場景描述“中下載步驟可以看出:
國內訪問cypress.io慢,需要替換其他地址,cypress.tgz已提供了環(huán)境變量 (CYPRESS_DOWNLOAD_MIRROR),可以更換
下載地址https://download.cypress.io/desktop/3.1.4?platform=linux&arch=x64 中,可以在構建過程中改變的只有 https://download.cypress.io部分,余下內容為固定值無法改變
解決方案
手工下載cypress.zip文件,并上傳到私有倉庫
上傳到私有倉庫時,指定文件路徑為/desktop/3.1.4,與cypress.tgz腳本中定義的保持一致(版本號3.1.4以實際使用為準)
在構建命令中設置環(huán)境變量,將https://download.cypress.io替換為私有倉庫地址
操作步驟
詳細操作步驟可參考https://help.sonatype.com/repomanager3/raw-repositories-and-maven-sites
此處提供簡易操作步驟如下:
1. 從官網下載cypress.zip文件
https://download.cypress.io/desktop/3.1.4?platform=linux&arch=x64
2. 在Nexus3創(chuàng)建文件系統(tǒng),新建raw(hosted)倉庫
3. 獲取hosted倉庫url,調用如下命令上傳文件到對應路徑
curl -v --user 'admin:admin123' --upload-file ./cypress.zip http://localhost:8081/repository/npm/cypress/desktop/3.1.4
注意:
上傳時指定的文件路徑(/desktop/3.1.4)必須與官網下載地址的文件路徑保持一致,此處使用desktop/3.1.4即可(具體版本號以實際使用的版本為準)
4. 修改構建任務,配置環(huán)境變量以修改cypress.zip下載地址
在構建命令前添加:
export CYPRESS_DOWNLOAD_MIRROR="http://localhost:8081/repository/npm/cypress/"
總結
以上是生活随笔為你收集整理的YARN构建--解决cypress下载慢问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BigDecimal.setScale
- 下一篇: JS脚本显示当前日期+星期几[转]