背景

注意:

  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)仓库

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/"

YARN构建--解决cypress下载慢问题的更多相关文章

  1. 我教你如何解决 Docker 下载 mcr.microsoft.com 镜像慢的办法

    我教你如何解决 Docker 下载 mcr.microsoft.com 镜像慢的办法 一.介绍 最近,我在写有关使用 Jenkins 搭建企业级持续集成环境的文章,准备了四台服务器,企业级别嘛,一台就 ...

  2. 解决nexus下载maven索引的问题

    解决nexus下载maven索引的问题 (2011-10-12 17:48:46) 转载▼ 标签: it 分类: java 转自 http://www.colorfuldays.org/program ...

  3. 解决 Firefox 下载文件名乱码扩展 ReDisposition

    作者 muzuiget  发布 2013-03-13 19:23  标签 redisposition Firefox 下载文件名乱码问题由来已久,偶然一两次还可以手动改名,批量下载时简直要亲命,最终我 ...

  4. 解决Ubuntu“下载额外数据文件失败 ttf-mscorefonts-installer”的问题 (转载)

    解决Ubuntu“下载额外数据文件失败 ttf-mscorefonts-installer”的问题 发表于 2017-09-15 | 更新于 2018-04-29 | 分类于 Linux | 评论数: ...

  5. 通过修改host解决VS2019下载极慢的问题

    原文:通过修改host解决VS2019下载极慢的问题 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn ...

  6. 解决Maven下载依赖慢的问题(转)

    使用Maven构建项目时,项目中有的依赖包可能下载的非常慢,我们可以通过配置镜像来解决这个问题. 之前开源中国的那个好像已经关闭了,于是我找到了一个阿里的来解决. 在Maven的配置文件(%MAVEN ...

  7. 解决npm下载包失败的问题

    在我朝,用npm直接从官方的镜像下载包,经常会出现网络超时下载失败的问题,具体原因大家都懂,我就不说了. 不过,这些都无法阻挡我们对知识的渴望,一下提供几种我在工作中的解决办法,希望能帮助你. 1.安 ...

  8. 解决jsp下载文件,迅雷下载路径不显示文件名称的问题

    如果浏览器安装了迅雷的插件,在jsp页面调用java后台实现文件下载功能时,会自动弹出迅雷下载,迅雷的下载路径会显示.do或者.xhtml之类的,为了解决这个问题,jsp页面修改如下: 写一个< ...

  9. 解决Genymotion下载设备失败的方法(Connection Timeout)

    一直下载不下来,报错. 解决办法: 打开 C:\Users\用户名\AppData\Local\Genymobile目录 打开genymotion.log文件,在里面最下面几行,找到如下日志 [Deb ...

随机推荐

  1. STM32F103芯片SPI控制NRF24L012.4G无线模块交互通信实验

    1.NRF24L01模块的资料百度搜索一下就有很多.这里我就不做介绍本文主要侧重于应用层面实验介绍与分享. 2.先看下原理图. 根据原理图:写出NRF24L01  C语言驱动文件如下: #includ ...

  2. 15-16 ICPC europe J Saint John Festival (graham扫描法+旋转卡壳)

    题意:给n个大点,m个小点$(n<=1e5,m<=5e5),问有多少个小点,存在3个大点,使小点在三个大点组成的三角形内. 解题思路: 首先,易证,若该小点在某三大点行成的三角形内,则该小 ...

  3. 定期备份和清理gitlab文件

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019-12-05 14:39 # @Author : Anthony # @Emai ...

  4. Golang的安装与环境配置(包括Go lint、Go imports、Go fmt)

    Golang安装 下载地址:https://studygolang.com/dl Go语言中文网 下载后安装,win10系统中会自动配置大部分设置,linux系统请参照网上教程 GO环境变量配置: $ ...

  5. MySQL新项目如何确保上线安全

    大纲 DBA最应该做的事情 新项目开发环境应该注意什么 功能测试和压力测试MySQL DBA关注点 线上环境关注点 业务在大压力情况下,MySQL如何能活下来 DBA最应该做的事情 备份 建议每天全备 ...

  6. springboot 使用consul 读取配置文件(遇到的坑太多,没记录)

    最终成功版. pom引入mavn依赖: <!--consul--> <dependency> <groupId>org.springframework.cloud& ...

  7. 【转载】Sqlserver中使用Round函数对计算结果四舍五入

    在实际应用的计算中,很多时候我们需要对最后计算结果四舍五入,其实在Sqlserver中也有对应的四舍五入函数,就是Round函数,Round函数的格式为Round(column_name,decima ...

  8. 苹果APP内购客户付款成功,没收到相应虚拟产品的解决办法

    一.引导用户走申请苹果的退款 1.告知用户新版本可以使用支付宝.微信支付,更划算 2.苹果可申请90天以内的退款,一般情况申请后48小时内就有反馈. 参考链接 https://jingyan.baid ...

  9. 用BIO手写实现Redis客户端的探究(拒绝Jedis)

    在Redis的使用过程中,大多数人都是使用现成的客户端,如Jedis,Redisson,Lettuce.因此本文研究用BIO的方式手写Redis客户端尝试,对遇到的问题进行探究及总结. Redis通讯 ...

  10. 解决用Xftp向虚拟机VMware传文件速度慢的问题

    在使用Xftp向虚拟机传文件时发现很慢,之后几K,如果这个文件有几十M,这是一个非常让人头疼的问题.网上找过很多设置都试过,都没有效果,偶然发现Windows网络配置中,有个选项Large Send ...