YARN構建--解決cypress下載慢問題


 

 

背景

注意:

  1.      此方案僅適合已經自行搭建私有倉庫的用戶使用

  2.      如非必要,盡可能使用軟件開發雲或其他服務提供的鏡像站,避免此類特殊處理(會導致倉庫維護成本增加)

場景描述

YARN構建中,如果使用了cypress包,會出現如下的下載過程

 

    1. 從npm倉庫下載 cypress.tgz : npm http fetch GET 200 https://mirrors.huaweicloud.com/repository/npm/cypress/-/cypress-3.1.4.tgz  146ms

 

    2. 執行cypress-3.1.4.tgz中的腳本,該腳本會拼接出cypress.zip的下載地址並下載,分析cypress.tgz腳本發現,下載地址獲取過程如下:

        (1) 獲取下載服務器地址:如果環境變量有值,則去環境變量中配置的地址,否則取默認地址 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   時,速度比較慢,會導致構建卡頓甚至超時失敗

問題分析

從”場景描述“中下載步驟可以看出:

  1. 國內訪問cypress.io慢,需要替換其他地址,cypress.tgz已提供了環境變量 (CYPRESS_DOWNLOAD_MIRROR),可以更換

  2. 下載地址 https://download.cypress.io/desktop/3.1.4?platform=linux&arch=x64  中,可以在構建過程中改變的只有 https://download.cypress.io部分,余下內容為固定值無法改變

解決方案

  1. 手工下載cypress.zip文件,並上傳到私有倉庫

  2. 上傳到私有倉庫時,指定文件路徑為/desktop/3.1.4,與cypress.tgz腳本中定義的保持一致(版本號3.1.4以實際使用為准)

  3. 在構建命令中設置環境變量,將https://download.cypress.io替換為私有倉庫地址

操作步驟

詳細操作步驟可參考 https://help.sonatype.com/repomanager3/raw-repositories-and-maven-sites#RawRepositoriesandMavenSites-CreatingaHostedRawRepository 

 

此處提供簡易操作步驟如下:

1. 從官網下載cypress.zip文件

https://download.cypress.io/desktop/3.1.4?platform=linux&arch=x64 

2. 在Nexus3創建文件系統,新建raw(hosted)倉庫

image.png

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. 修改構建任務,配置環境變量以修改cypress.zip下載地址

在構建命令前添加:

 

export  CYPRESS_DOWNLOAD_MIRROR="http://localhost:8081/repository/npm/cypress/"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM